我刚刚阅读了一些Spring文档,我对autoconfigs的工作方式有疑问。因此,如果我们运行具有特定配置文件的Java应用程序,它将自动使用以以下格式命名的配置文件:
application-{{profileName}}.properties
所以,假设我正在使用配置文件dev和personal运行应用程序。这意味着可以运行以下属性文件:application.properties,application-dev.properties和application-personal.properties。我很困惑spring如何确定这些配置文件的优先级。就像,如果我在开发中定义覆盖个人的东西,将使用哪一个?
谢谢!
Spring Boot使用默认配置文件default,然后使用您列出的配置文件顺序覆盖它。
例如,如果在application.properties中指定:
spring.profiles.active=dev,personnal
key1=default-value1
key2=default-value2
key3=default-value3
个人配置文件中定义的所有值都将覆盖dev和default中的值。
application-Dev.properties :
key2=dev-value2
key3=dev-value3
application-person哪里.properties :
key3=personnal-value3
您的应用将匹配这些值:
key1=default-value1
key2=dev-value2
key3=personnal-value3
您还可以在application-personnal.properties中使用spring.profiles.include来无条件地在个人配置文件中包含dev配置文件,例如:
spring.profiles.include=dev
问候
您可以将application.properties
文件视为“默认值文件”。
在bootstrap上指定配置文件时,例如'dev',首先处理application.properties
文件,之后,这些值将被从application-dev.properties
文件导入的值覆盖。因此,不会导入'application-personal.properties'上的值。