Spring 引导配置文件特定和 spring.config.import 属性的优先级
Posted
技术标签:
【中文标题】Spring 引导配置文件特定和 spring.config.import 属性的优先级【英文标题】:Precedence of Spring boot profile specific and spring.config.import properties 【发布时间】:2021-10-15 23:51:27 【问题描述】:Spring Boot 版本:2.5.0
我有不同的属性文件。 3 个在 jar 中,一个在服务器上(用于覆盖特定于服务器的属性)
-
application.properties
application-dev.properties
application-prod.properties
活动配置文件和外部属性的路径在 application.properties 中配置。
spring.profiles.active=@prodProfile@
spring.config.import=optional:file:./application-local.properties
@prodProfile@ 的值来自 pom.xml 的配置文件部分。
<properties>
<prodProfile>prod</prodProfile>
</properties>
如果我在 application-prod.properties 和 application-local.properties 中有相同的属性,哪个优先?当我测试时,我发现配置文件特定具有优先权。无法使用 spring.config.import 覆盖属性值。这是预期的行为吗?
【问题讨论】:
【参考方案1】:是的,这是预期的行为。与described in the documentation 一样,使用spring.config.import
导入的文件“被视为紧接在声明导入的文件下方插入的附加文档”。
在您的情况下,您将文件导入application.properties
,因此它将被视为一般的、非特定于配置文件的配置。因此,特定于配置文件的属性将优先。
【讨论】:
以上是关于Spring 引导配置文件特定和 spring.config.import 属性的优先级的主要内容,如果未能解决你的问题,请参考以下文章