目录

  • Profiles
  • 添加活动配置文件
  • 配置文件组
  • 以编程方式设置配置文件
  • 配置文件特定的配置文件

Profiles

Spring Profiles 提供了一种分离应用程序配置部分并使其仅在某些环境中可用的方法。任何@Component@Configuration@ConfigurationProperties可以在@Profile加载时标记为限制,如下例所示:

@Configuration(proxyBeanMethods = false)
@Profile("production")
public class ProductionConfiguration {

    // ...

}

您可以使用spring.profiles.active Environment属性来指定哪些配置文件处于活动状态。您可以通过本章前面描述的任何方式指定属性。例如,您可以将它包含在您的application.properties中,如以下示例所示:

spring:
  profiles:
    active: "dev,hsqldb"

您还可以使用以下开关在命令行上指定它:--spring.profiles.active=dev,hsqldb.

如果没有配置文件处于活动状态,则启用默认配置文件。默认配置文件的名称是default,并且可以使用该spring.profiles.default Environment属性进行调整,如以下示例所示:

spring:
  profiles:
    default: "none"

添加活动配置文件

spring.profiles.active属性遵循与其他属性相同的排序规则:最高者PropertySource获胜。这意味着您可以在其中指定活动配置文件,application.properties然后使用命令行开关替换它们。

配置文件组

有时,您在应用程序中定义和使用的配置文件过于细化,使用起来很麻烦。例如,您可能拥有用于独立启用数据库和消息传递功能的配置文件proddbprodmq

为了帮助解决这个问题,Spring Boot 允许您定义配置文件组。配置文件组允许您为相关的配置文件组定义逻辑名称。

例如,我们可以创建一个production由我们的proddbprodmq配置文件组成的组。

spring:
  profiles:
    group:
      production:
      - "proddb"
      - "prodmq"

以编程方式设置配置文件

SpringApplication.setAdditionalProfiles(…)您可以通过在应用程序运行之前调用来以编程方式设置活动配置文件。也可以使用 Spring 的ConfigurableEnvironment界面激活配置文件。

配置文件特定的配置文件

application.properties(或application.yml)和通过引用的文件的特定配置文件变体@ConfigurationProperties被视为文件并加载。