三、Profile --SpringBoot功能

一、Profiles

Spring Profiles提供了一种隔离应用程序配置部分并使之仅在某些环境中可用的方法。 可以使用@Profile标记任何@ Component,@ Configuration或@ConfigurationProperties,以限制其加载时机,如以下示例所示:

@Configuration(proxyBeanMethods = false)
@Profile("production")
public class ProductionConfiguration {

    // ...

}

如果@ConfigurationProperties Bean是通过@EnableConfigurationProperties而非自动扫描注册的,则需要在具有@EnableConfigurationProperties注解的@Configuration类上指定@Profile注解。 在扫描@ConfigurationProperties的情况下,可以在@ConfigurationProperties类本身上指定@Profile

您可以使用spring.profiles.active``Environment属性来指定哪些配置文件处于激活状态。 您可以通过本章前面介绍的任何方式指定属性。 例如,您可以将其包含在application.properties中,如以下示例所示:

spring.profiles.active=dev,hsqldb

你也可以使用命令行参数:--spring.profiles.active = dev,hsqldb

1、添加激活的配置文件

spring.profiles.active属性遵循与其他属性相同的排序规则:最高优先级的PropertySource获胜。 这意味着您可以在application.properties中指定激活的配置文件,然后在命令行参数中替换掉。

有时,将特定配置文件的属性添加到活动配置文件而不是替换它们是有用的。 spring.profiles.include属性可用于无条件添加活动配置文件SpringApplication入口点还有Java API用于设置其他配置文件(即,在由spring.profiles.active属性激活的配置文件优先级之上)。 请参阅SpringApplication中的setAdditionalProfiles()方法。

例如,使用参数--spring.profiles.active = prod运行具有以下属性的应用程序时,proddbprodmq配置文件也会被激活:

---
my.property: fromyamlfile
---
spring.profiles: prod
spring.profiles.include:
  - proddb
  - prodmq

请记住,可以在YAML文档中定义spring.profiles属性,来加载特定的配置文件。

2、通过程序设置配置文件

您可以在应用程序运行之前通过调用SpringApplication.setAdditionalProfiles(…)以编程方式设置机号的配置文件。 也可以使用Spring的ConfigurableEnvironment接口来激活配置文件

3、特定的配置文件

application.properties(或application.yml)和通过@ConfigurationProperties引用的文件的特定配置文件都被认为已经加载。

原文地址:https://www.cnblogs.com/ylcc-zyq/p/12600172.html