zoukankan      html  css  js  c++  java
  • Spring Boot2(012):Profiles

    Spring Boot2系列文章可以通过这里进行回顾:SpringBoot2(001):入门介绍、官网参考和博客汇总


      本文主要针对 SpringBoot 的 Profiles 进行介绍,实际上主要是说明如何激活某个 profiles 、甚至添加激活其他更多的 profiles 等,主要参考官方文档: 25. Profiles ,目录结构如下:

      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 之上)。参考 SpringApplicationsetAdditionalProfiles() 方法。

      例如,当一个有如下属性配置的应用通过参数 --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、参考

  • 相关阅读:
    3.K均值算法
    2.机器学习相关数学基础
    机器算法第一次作业
    语法制导的语义翻译
    算符优先分析
    自下而上语法分析
    LL(1)文法的判断,递归下降分析程序
    消除左递归
    DFA最小化,语法分析初步
    词法分析程序的设计与实现
  • 原文地址:https://www.cnblogs.com/wpbxin/p/13375636.html
Copyright © 2011-2022 走看看