美文网首页Java技术升华面试精选
JAVA进阶篇(11)— 如何读取JVM启动参数的值

JAVA进阶篇(11)— 如何读取JVM启动参数的值

作者: 小胖学编程 | 来源:发表于2021-09-17 11:10 被阅读0次

项目配置信息一般放在配置文件中,但是一些配置需要放在JVM的启动项中。在启动的时候读取最新的配置。

1. 工具类

为此:特意写了一个工具类,来完成该功能:

/**
 * 系统工具类
 *
 * @Date 2021-01-21 17:54
 */
@Slf4j
public abstract class SystemUtil {

    /**
     * 读取JVM启动的配置项例如-DallowSize=1)
     *
     * @param key 启动项的key,例如allowSize
     * @return 配置项的值String格式, 由调用者进行转换
     */
    public static String getSystemProperties(String key) {
        return System.getProperties().getProperty(key);
    }

    /**
     * 读取JVM启动参数(例如-DallowSize=1),并转换为Integer格式。若未配置或者转换失败,返回null
     *
     * @param key 启动项的key,例如allowSize
     * @return 若未配置或者转换失败,返回null
     */
    public static Integer getSystemProperties2Int(String key) {
        Integer value = null;
        try {
            String property = System.getProperties().getProperty(key);
            if (property != null) {
                value = Integer.valueOf(property);
            }
        } catch (Exception e) {
            log.error("", e);
        }
        return value;
    }

    /**
     * 读取JVM启动参数(例如-DallowSize=1),并转换为Long格式。若未配置或者转换失败,返回null
     *
     * @param key 启动项的key,例如allowSize
     * @return 若未配置或者转换失败,返回null
     */
    public static Long getSystemProperties2Long(String key) {
        Long value = null;
        try {
            String property = System.getProperties().getProperty(key);
            if (property != null) {
                value = Long.valueOf(property);
            }
        } catch (Exception e) {
            log.error("", e);
        }
        return value;
    }
}
启动项配置.png

使用的时候,将project.name传入,即可读取出product001_pro的名字。

2. JAVA的封装

JAVA使用基本类型的封装类型,也可以去获取JVM启动的系统参数:

public class TestBoolean {


    private final static String SYS_FAST = "SYS_FAST_FLAG";
    private final static String INT_PARAM = "INT_PARAM";

    /**
     * 泛型类型封装了参数类型.
     * 区分大小写。
     */
    public static void main(String[] args) {
        //idea环境变量配置时,必须以-D开头
        System.out.println(Boolean.getBoolean(SYS_FAST));
        System.out.println(Integer.getInteger(INT_PARAM));
    }

}

在一些框架中,就可以根据JVM启动参数的不同,来动态的创建不同的对象。

相关文章

网友评论

    本文标题:JAVA进阶篇(11)— 如何读取JVM启动参数的值

    本文链接:https://www.haomeiwen.com/subject/pwilgltx.html