弹簧启动和多个外部配置文件
我有多个要从类路径加载的属性文件。有一个缺省集,其下是 的一部分。我希望文件在类路径上。即/src/main/resources
myapp.jar
springcontext
<util:properties id="Job1Props"
location="classpath:job1.properties"></util:properties>
<util:properties id="Job2Props"
location="classpath:job2.properties"></util:properties>
我还需要使用外部集覆盖这些属性的选项。我在 中有一个外部配置文件夹。根据弹簧引导文档配置文件夹应该在类路径上。但是从doc中不清楚它是否只会覆盖来自那里或配置中的所有属性。cwd
application.properties
当我测试它时,只会被拾取,其余的属性仍然从中获取。我已尝试将它们作为逗号分隔列表提供给,但默认集仍未被覆盖。application.properties
/src/main/resources
spring.config.location
如何使多个外部配置文件覆盖默认配置文件?
作为我目前使用的解决方法(特定于应用程序的属性),我通过命令行提供。即app.config.location
java -jar myapp.jar app.config.location=file:./config
我把我的applicationcontext
<util:properties id=“Job1Props” location=“{app.config.location}/job1.properties”></util:properties>
<util:properties id="Job2Props"
location="{app.config.location}/job2.properties"></util:properties>
这就是我在加载应用程序时在文件和类路径之间进行分离的方式。
编辑:
//pseudo code
if (StringUtils.isBlank(app.config.location)) {
System.setProperty(APP_CONFIG_LOCATION, "classpath:");
}
我真的不想使用上述解决方法,并让Spring覆盖类路径上的所有外部配置文件,就像它对文件所做的那样。application.properties