目录
2. getProperty(key) 能够获取到系统默认的参数
两个方法都是获取系统变量参数的方法,下面比较一下用法和区别。
1. 使用getProperty(key)获取配置参数
通过配置VM options向应用里注入参数, 格式为-Dkey=value。
然后通过System.getProperty("rocketmq.namesrv.addr") 获取到参数即可。
2. getProperty(key) 能够获取到系统默认的参数
getProperty(key)方法 除了能获取到配置参数外,还能够获取到jvm自带的一些系统参数,如获取当前系统的默认用户路径,windows环境下一般都是 c:\Users\adminstrator, 用参数user.home即可。
System.getProperty("user.home")
3. 通过getenv(key)方法获取系统参数
可以在 Environment variables里设置键值对,用getenv(key)方法读取到value。
通过System.getenv("NAMESRV_ADDR") 获取到参数即可。
4. 二者优先级对比
public static String getNameServerAddresses() {
return System.getProperty(MixAll.NAMESRV_ADDR_PROPERTY,
System.getenv(MixAll.NAMESRV_ADDR_ENV));
}
最后读取到了vm options里的参数,由结果可知: VM options 的优先级大于Environment variable。