Spring Boot无法解决PropertySources优先级

时间:2018-10-12 08:20:47

标签: java spring-boot

我有一个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.propertiesdistro.properties

但是,我编写的3个文件的顺序或解析将被忽略,并且使用Spring的默认行为,因此application.properties会覆盖外部属性。 我在做什么错了?

我还尝试覆盖配置spring.config.additional-locationspring.config.location以强制使用正确的顺序

classpath:/,file:./

但没有任何改变

0 个答案:

没有答案