Java 外部化jar文件中的属性文件
我有一个jar和application.properties文件,如下所示-Java 外部化jar文件中的属性文件,java,maven,tomcat,Java,Maven,Tomcat,我有一个jar和application.properties文件,如下所示- BASE_ENVIRONMENT = http://localhost 这是我用来读取属性文件的实用程序类 Properties prop = new Properties(); ClassLoader loader = Thread.currentThread().getContextClassLoader(); InputStream in = loader.get
BASE_ENVIRONMENT = http://localhost
这是我用来读取属性文件的实用程序类
Properties prop = new Properties();
ClassLoader loader = Thread.currentThread().getContextClassLoader();
InputStream in = loader.getResourceAsStream(fileName + ".properties");
属性文件位于
这个jar在部署在tomcat服务器中的web应用程序中用作依赖jar
但是我需要为生产环境更改BASE\u环境
有没有办法将此属性文件值外部化?您可以添加一个系统参数作为配置文件:
// 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。可能类似于。基本上,jar中的文件定义默认值,而外部文件覆盖1个或多个默认值。