Skip to content

Latest commit

 

History

History
56 lines (36 loc) · 2.7 KB

File metadata and controls

56 lines (36 loc) · 2.7 KB

25. Profiles

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

@Configuration
@Profile("production")
public class ProductionConfiguration {

	// ...

}

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

spring.profiles.active=dev,hsqldb

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


25.1 Adding Active Profiles

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

有时,将特定于配置文件的属性添加到活动配置文件而不是替换它们是有用的。spring.profiles.include 属性可用于无条件地添加活动配置文件。 SpringApplication 入口点还有一个 JavaAPI ,用于设置其他配置文件(即,在 spring.profiles.active 属性激活的配置文件之上)。请参阅 SpringApplication 中的 setAdditionalProfiles() 方法。

例如,当使用开关 --spring.profiles.active=prod 运行具有以下属性的应用程序时,proddbprodmq 配置文件也会被激活:

---
my.property: fromyamlfile
---
spring.profiles: prod
spring.profiles.include:
  - proddb
  - prodmq

☀️ 请记住,可以在YAML文档中定义spring.profiles属性,以确定此特定文档何时包含在配置中。有关更多详细信息,请参见第74.7节 “根据环境更改配置”


25.2 Programmatically Setting Profiles

您可以在应用程序运行之前通过调用 SpringApplication.setAdditionalProfiles(...) 以编程方式设置活动配置文件。也可以使用 SpringConfigurableEnvironment 接口激活配置文件。


25.3 Profile-specific Configuration Files

application.properties(或 application.yml)的特定于配置文件的变体和通过 @ConfigurationProperties 引用的文件被视为文件并已加载。有关详细信息,请参见第24.4节 “特定于配置文件的属性”