外部化 jar 文件内的属性文件



我有带有应用程序属性文件的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。

最新更新