25.1. 添加激活的配置(profiles)

spring.profiles.active属性和其他属性一样都遵循相同的排列规则,优先级最高的PropertySource获胜,也就是说,你可以在application.properties中指定生效的配置,然后使用命令行开关替换它们。

有时,将profile-specific的属性添加到激活的配置中而不是直接替换它们是有好处的。spring.profiles.include属性可以用来无条件的添加激活的配置,而SpringApplication的入口点也提供了一个用于设置其他配置的Java API,通过它设置的active配置优先级高于spring.profiles.active,具体参考setAdditionalProfiles()方法。

例如,当一个应用使用下面的属性,并用--spring.profiles.active=prod开关运行,那proddbprodmq profiles也会激活:

  1. ---
  2. my.property: fromyamlfile
  3. ---
  4. spring.profiles: prod
  5. spring.profiles.include: proddb,prodmq

spring.profiles属性可以定义到YAML文档中,以决定何时将该文档包含进配置,具体参考Section 63.6, “Change configuration depending on the environment”