文章作者:Tyan
博客:noahsnail.com ?|? CSDN ?|? 簡書
25. Profiles
Spring Profiles提供了一種隔離部分應用配置的方式畦韭,并讓這些配置只在特定的環(huán)境生效虱肄。任何帶有@Profile
標記的@Component
或@Configuration
在加載時都會受限制:
@Configuration
@Profile("production")
public class ProductionConfiguration {
// ...
}
以正常的Spring方式横浑,你可以使用spring.profiles.active
Environment
屬性來指定激活哪一個profiles啥容。你可以在任何常見的方式指定這個屬性涵妥,例如你可以在你的application.properties
中包含它:
spring.profiles.active=dev,hsqldb
或在命令行用--spring.profiles.active=dev,hsqldb
指定促脉。
25.1 添加激活的profiles
spring.profiles.active
屬性與其它的屬性一樣遵循同樣的排序規(guī)則悦污,最高的PropertySource
優(yōu)先覆旭。這意味著你可以在application.properties
指定激活的profiles退子,然后用命令行轉(zhuǎn)換替代它們。
例如型将,當一個應用具有以下屬性且運行時使用--spring.profiles.active=prod
轉(zhuǎn)換寂祥,proddb
和prodmq
profiles也將被激活:
---
my.property: fromyamlfile
---
spring.profiles: prod
spring.profiles.include:
- proddb
- prodmq
記住可以在YAML文檔中定義
spring.profiles
來決定在配置中包含特定的文檔。更多細節(jié)請看70.7小節(jié)七兜,“根據(jù)環(huán)境更改配置”丸凭。
25.2 以編程方式設置profiles
你可以在你的應用運行之前以編程的方式調(diào)用SpringApplication.setAdditionalProfiles(…?)
來設置激活的profiles。也可以使用Spring的ConfigurableEnvironment
接口來激活profiles腕铸。
25.3 指定profile的配置文件
application.properties
(或application.yml
)和通過@ConfigurationProperties
引用的文件的特定profiles變種都被當做文件進行加載惜犀。更多細節(jié)請看24.4小節(jié),“Profile-specific properties”狠裹。