我有多个属性文件,我想从类路径加载。在/ src / main / resources下有一个默认设置,它是myapp.jar的一部分。我的springcontext期望文件在类路径上。即:
location="classpath:job1.properties">
location="classpath:job2.properties">
我还需要使用外部集来覆盖这些属性的选项。我有一个外部config文件夹在cwd。按照Spring启动doc配置文件夹应该在类路径。但它不清楚从doc如果它将只覆盖applicaiton.properties从那里或所有的配置中的属性。
当我测试它,只有application.properties被拾起,其余的属性仍然从/ src /主/资源。我试图提供他们作为逗号分隔的列表到spring.config.location,但默认设置仍然没有被覆盖。
如何使多个外部配置文件覆盖默认的?
作为解决方法我目前使用app.config.location(应用程序特定属性),我通过命令行提供。即,
java -jar myapp.jar app.config.location=file:./config
我把我的applicationcontext改为
location="{app.config.location}/job2.properties">
这是我如何使文件和类路径之间加载应用程序时分离。
编辑:
//psuedo code
if (StringUtils.isBlank(app.config.location)) {
System.setProperty(APP_CONFIG_LOCATION, "classpath:");
}
我真的不想使用上面的解决方法,并有spring覆盖所有外部配置文件在类路径,就像它为application.properties文件。