我有app.properties文件的jar,如下所示 -
BASE_ENVIRONMENT = http://localhost
这是我的实用程序类来读取属性文件
Properties prop = new Properties();
ClassLoader loader = Thread.currentThread().getContextClassLoader();
InputStream in = loader.getResourceAsStream(fileName + ".properties");
属性文件位于<default package>
此jar用作我的Web应用程序中的依赖jar,它部署在tomcat server
。
但我需要更改生产环境的BASE_ENVIRONMENT
。
有没有办法可以外化此属性文件值?
答案 0 :(得分:1)
您可以添加系统参数作为个人资料:
// default to DEV
String profile = "dev"
if (System.getProperty("ENV") != null) {
profile = System.getProperty("ENV");
}
Properties prop = new Properties();
ClassLoader loader = Thread.currentThread().getContextClassLoader();
InputStream in = loader.getResourceAsStream(fileName + "_" + profile + ".properties");
然后你会用
启动你的应用程序 .... -DENV=prod
,类似config_prod.properties的文件可以在类路径中找到,默认为config_dev.properties。