我有一个Spring Boot 2.0.5应用程序,必须从3个不同的文件中读取属性:
First: classpath:/application.properties
Second: file:/./common.properties
Last: file:/./distro.properties
这3个文件具有共同的属性,必须按指定的顺序覆盖。
我读了(official documentation for Externalized properties of Spring)。
所以我尝试用这样的PropertySources注释构建我的@configuration
类
@PropertySources(
value = {
@PropertySource(value = "classpath:application.properties", ignoreResourceNotFound = false),
@PropertySource(value = "file:${common.properties}", ignoreResourceNotFound = false),
@PropertySource(value = "file:${distro.properties}", ignoreResourceNotFound = false)
}
)
然后在启动时通过命令行设置common.properties
和distro.properties
但是,我编写的3个文件的顺序或解析将被忽略,并且使用Spring的默认行为,因此application.properties会覆盖外部属性。 我在做什么错了?
我还尝试覆盖配置spring.config.additional-location
和spring.config.location
以强制使用正确的顺序
classpath:/,file:./
但没有任何改变