Spring配置文件提供了一種方法來隔離應用程序配置的部分,並使其僅在某些環境中可用。任何@Component
或@Configuration
均可以標記爲@Profile
,以限制加載時的限制,以下例所示:html
@Configuration @Profile("production") public class ProductionConfiguration { // ... }
你能夠使用spring.profiles.active
Environment
屬性來指定哪些配置文件是激活的,你能夠在本章前面描述的任何方法中指定屬性。例如,你能夠在application.properties
中包含它,以下例所示:spring
spring.profiles.active=dev,hsqldb
你還能夠使用如下開關在命令行上指定它:--spring.profiles.active=dev,hsqldb
。sql
spring.profiles.active
屬性與其餘屬性遵循相同的排序規則:最高的PropertySource
獲勝,這意味着你能夠在application.properties
中指定激活配置文件,而後使用命令行開關替換它們。編程
有時,將特殊配置文件的屬性添加到激活的配置文件中而不是替換它們是有用的,spring.profiles.include
屬性可用於無條件地添加激活配置文件,SpringApplication
入口點還有一個Java API用於設置額外的配置文件(也就是說,在spring.profiles.active
屬性激活的配置文件之上)。參見SpringApplication中的setAdditionalProfiles()
方法。segmentfault
例如,當使用--spring.profiles.active=prod
開關運行具備如下屬性的應用程序時,proddb
和prodmq
配置文件也被激活:api
--- my.property: fromyamlfile --- spring.profiles: prod spring.profiles.include: - proddb - prodmq
請記住能夠在YAML文檔中定義
spring.profiles
屬性,以肯定該文檔什麼時候包含在配置中,有關更多細節,請參閱
第74.7節「根據環境更改配置」。
你能夠在應用程序運行以前經過調用SpringApplication.setAdditionalProfiles(…)
來編程地設置激活配置文件,也能夠經過使用Spring的ConfigurableEnvironment
接口來激活配置文件。app
application.properties
(或application.yml
)和經過@ConfigurationProperties
引用的文件的特殊配置文件的變體被視爲文件並被加載。有關詳細信息,請參閱「第24.4節」「特殊配置文件的屬性」spring-boot