文章作者:Tyan
博客:noahsnail.com | CSDN | 简书
25. Profiles
Spring Profiles提供了一种隔离部分应用配置的方式,并让这些配置只在特定的环境生效。任何带有@Profile
标记的@Component
或@Configuration
在加载时都会受限制:
1 | @Configuration |
以正常的Spring方式,你可以使用spring.profiles.active
Environment
属性来指定激活哪一个profiles。你可以在任何常见的方式指定这个属性,例如你可以在你的application.properties
中包含它:
1 | spring.profiles.active=dev,hsqldb |
或在命令行用--spring.profiles.active=dev,hsqldb
指定。
25.1 添加激活的profiles
spring.profiles.active
属性与其它的属性一样遵循同样的排序规则,最高的PropertySource
优先。这意味着你可以在application.properties
指定激活的profiles,然后用命令行转换替代它们。
例如,当一个应用具有以下属性且运行时使用--spring.profiles.active=prod
转换,proddb
和prodmq
profiles也将被激活:
1 | --- |
记住可以在YAML文档中定义
spring.profiles
来决定在配置中包含特定的文档。更多细节请看70.7小节,“根据环境更改配置”。
25.2 以编程方式设置profiles
你可以在你的应用运行之前以编程的方式调用SpringApplication.setAdditionalProfiles(…)
来设置激活的profiles。也可以使用Spring的ConfigurableEnvironment
接口来激活profiles。
25.3 指定profile的配置文件
application.properties
(或application.yml
)和通过@ConfigurationProperties
引用的文件的特定profiles变种都被当做文件进行加载。更多细节请看24.4小节,“Profile-specific properties”。