# 25\. 配置文件(Profiles)
Spring 配置文件提供了將應用程序配置隔離的方法,使其僅在某些環境中可用。 任何@Component或@Configuration都可以使用@Profile進行標記,以限制其在什么時候加載:
```
@Configuration
@Profile("production")
public class ProductionConfiguration {
// ...
}
```
一般,您可以使用spring.profiles.active Environment屬性來指定哪些配置文件處于激活狀態。 您可以以任何方式指定屬性,例如,您可以將其包含在您的application.properties中:
```
spring.profiles.active=dev,hsqldb
```
或者使用命令行`--spring.profiles.active=dev,hsqldb`在命令行中指定。
### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#251添加激活配置文件)25.1添加激活配置文件
spring.profiles.active屬性遵循與其他屬性相同的優先級規則,PropertySource最高。這意味著您可以在application.properties中指定活動配置文件,然后使用命令行開關替換它們。
有時,將特定于配置文件的屬性添加到激活的配置文件而不是替換它們是有用的。 spring.profiles.include屬性可用于無條件添加激活配置文件。 SpringApplication入口點還具有用于設置其他配置文件的Java API(即,在由spring.profiles.active屬性激活的那些配置文件之上):請參閱setAdditionalProfiles()方法。
例如,當使用開關 -spring.profiles.active=prod 運行具有以下屬性的應用程序時,proddb和prodmq配置文件也將被激活:
```
---
my.property: fromyamlfile
---
spring.profiles: prod
spring.profiles.include:
- proddb
- prodmq
```
請記住,可以在YAML文檔中定義spring.profiles屬性,以確定此特定文檔何時包含在配置中。 有關詳細信息,請參見[第72.7節“根據環境更改配置”](http://docs.spring.io/spring-boot/docs/1.5.2.RELEASE/reference/htmlsingle/#howto-change-configuration-depending-on-the-environment)。
### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#252-以編程方式設置配置文件)25.2 以編程方式設置配置文件
您可以通過在應用程序運行之前調用SpringApplication.setAdditionalProfiles(...)以編程方式設置激活配置文件。 也可以使用Spring的ConfigurableEnvironment接口激活配置文件。
### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#253-配置文件指定的配置文件)25.3 配置文件指定的配置文件
通過@ConfigurationProperties引用的application.properties(或application.yml)和文件的配置文件特定變體都被視為加載文件。 有關詳細信息,請參見[第24.4節指定配置(Profile-specific)的屬性”](http://docs.spring.io/spring-boot/docs/1.5.2.RELEASE/reference/htmlsingle/#boot-features-external-config-profile-specific-properties)。
- Part I. Spring Boot 文檔
- Part II. 入門指南
- 8. Spring Boot 介紹
- 9. 系統要求
- 10. 安裝 Spring Boot
- 11. 開發您的第一個Spring Boot應用程序
- 12. 接下來應該讀什么
- Part III. 使用 Spring Boot
- 13. 構建系統
- 14. 構建代碼
- 15. 配置類
- 16. 自動配置
- 17. Spring Beans 和 依賴注入
- 18. 使用@SpringBootApplication注解
- 19. 運行你的應用程序
- 20. 開發工具
- 21. 包裝您的應用程序到生產環境
- 22. 接下來應該讀什么
- Part IV. Spring Boot 功能
- 23. SpringApplication
- 24. 外部配置
- 25. 配置文件(Profiles)
- 26. 日志
- 27. 開發Web應用程序
- 28. Security
- 29. 使用SQL數據庫