我有带有应用程序属性文件的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
。
有没有办法将此属性文件值外部化?
您可以添加系统参数以充当配置文件:
// 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。