项目配置信息一般放在配置文件中,但是一些配置需要放在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启动参数的不同,来动态的创建不同的对象。
网友评论