Spring Boot2(012):Profiles
Posted wpbxin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot2(012):Profiles相关的知识,希望对你有一定的参考价值。
Spring Boot2系列文章可以通过这里进行回顾:SpringBoot2(001):入门介绍、官网参考和博客汇总
本文主要针对 SpringBoot 的 Profiles 进行介绍,实际上主要是说明如何激活某个 profiles 、甚至添加激活其他更多的 profiles 等,主要参考官方文档: 25. Profiles ,目录结构如下:
- 1、Adding Active Profiles
- 2、Programmatically Setting Profiles(编程式设置 Profiles)
- 3、Profile-specific Configuration Files
- 4、参考
Spring Profiles 配置文件提供了用来隔离应用程序部分配置的方法,并使其仅在某些特定环境中可用。任何使用 @Component 或 @Configuration 注解的 bean 都可以标记为 @Profile 来进行加载时的限制。如下例子:
@Configuration
@Profile("production")
public class ProductionConfiguration {
// ...
}
开发者可以通过 Environment 环境变量属性 spring.profiles.active 来指定激活哪个 profiles 。开发者可以使用本章前面描述的任何方式指定该属性。例如,可以在 application.properties 中指定:
spring.profiles.active=dev,hsqldb
还可以通过如下命令行参数来指定:
--spring.profiles.active=dev,hsqldb
1、Adding Active Profiles
spring.profiles.active 属性和其他属性一样,也遵循配置的优先级顺序,由最高优先级的 PropertySource 确认。这意味着开发者可以在 application.properties 进行指定,然后在命令行参数中进行替换。
有时候,在一些场景中,直接在 active profiles 中增加 profile-specific properties 或许比直接替换会更有用。 spring.profiles.include 属性可以用于无条件地增加 active profiles 。SpringApplication 入口点还有一个用于设置附加 profiles 的 Java API (也就是说,在 spring.profiles.active 属性激活的那些 profiles 之上)。参考 SpringApplication 的 setAdditionalProfiles() 方法。
例如,当一个有如下属性配置的应用通过参数 --spring.profiles.active=prod 进行运行时,proddb 和 prodmq 都会被激活:
--- my.property: fromyamlfile --- spring.profiles: prod spring.profiles.include: - proddb - prodmq
注:需要注意 spring.profiles 属性可以在 YAML 文档中定义,以确定该特定配置文档何时被包含在配置中。详情参考:Section 77.7, “Change Configuration Depending on the Environment”
2、Programmatically Setting Profiles(编程式设置 Profiles)
开发者可以在应用运行之前通过编程式调用 SpringApplication.setAdditionalProfiles(…) 的方式设置激活的 profiles (active profiles)。另外通过 Spring 的 ConfigurableEnvironment 接口来激活 profiles 也是可行的。
3、Profile-specific Configuration Files
application.properties (或者 application.yml) 和通过 @ConfigurationProperties 引用到的文件的配置属性都会被当作文件进行加载。详情参考:Section 24.4, “Profile-specific Properties” 或者参考笔者的上一篇博客中对此的简要介绍:特定配置属性 Profile-specific Properties
4、参考
- 官方文档:25. Profiles
以上是关于Spring Boot2(012):Profiles的主要内容,如果未能解决你的问题,请参考以下文章