SpringBoot -- Profiles

news/2024/12/23 1:26:29/
Profiles具备环境隔离能力,可以将我们的项目快速切换开发、测试、生产环境
我们的使用步骤也很简单:
1. 标识环境:指定哪些组件、配置在哪个环境生效
2. 切换环境:这个环境对应的所有组件和配置就应该生效
接下来就进行详细的介绍

1. 使用

1.1 指定环境

  • Spring Profiles 提供一种隔离配置的方式,使其仅在特定环境生效;
  • 任何@Component, @Configuration@ConfigurationProperties 可以使用 @Profile 标记,来指定何时被加载。【容器中的组件都可以被 @Profile标记】

1.2 环境激活

  1. 配置激活指定环境;

      spring.profiles.active=dev
    
  2. 也可以使用命令行激活。–spring.profiles.active=dev

  3. 还可以配置默认环境; 不标注@Profile 的组件永远都存在。
    a. 如果不改变默认环境,默认的默认环境叫default
    b. 我们可以通过spring.profiles.default=test对默认环境进行配置

1.3 注意

  • spring.profiles.activespring.profiles.default 只能用到 无 profile 的文件中,如果在application-dev.yaml中编写就是无效的。

    其实这一点很好理解,只有将环境切换为dev后,application-dev.yaml才会生效。如果在application-dev.yaml中才将dev环境激活,那么,application-dev.yaml生效后会激活dev,但激活了dev后application-dev.yaml才会生效,两者互相矛盾,就好像死锁了,永远也无法生效。

  • 也可以额外添加生效文件,而不是激活替换。比如:
    spring.profiles.include[0]=common
    spring.profiles.include[1]=local

  • 生效的环境 = 激活的环境/默认环境 + 包含的环境

  • 项目里面这么用
    ○ 基础的配置mybatis、log、xxx:写到包含环境中,因为包含环境永远生效
    ○ 需要动态切换变化的 db、redis:写到激活的环境中

2. Profile 分组

创建prod组,指定包含db和mq配置

spring.profiles.group.prod[0]=db
spring.profiles.group.prod[1]=mq

使用 spring.profiles.active=prod ,就会激活prod,db,mq配置文件

2.3 Profile 配置文件

  • application-{profile}.properties可以作为指定环境的配置文件。
  • 激活这个环境,配置就会生效。最终生效的所有配置是
    • application.properties:主配置文件,任意时候都生效
    • application-{profile}.properties:指定环境配置文件,激活指定环境生效
  • profile优先级 > application

http://www.ppmy.cn/news/1405532.html

相关文章

【IP组播】PIM-SM的RP、RPF校验

目录 一:PIM-SM的RP 原理概述 实验目的 实验内容 实验拓扑 1.基本配置 2.配置IGP 3.配置PIM-SM和静态RP 4.配置动态RP 5.配置Anycast RP 二: RPF校验 原理概述 实验目的 实验内容 实验拓扑 1.基本配置 2.配置IGP 3.配置PIM-DM 4.RPF校…

c++ new int[10]()会进行初始化.

new int[10]()-CSDN博客 #include<iostream> using namespace std;int main() {int *p new int[10]();for(int i 0; i < 10; i){cout << p[i] << endl;}delete []p; } 会进行初始化.

【C++第三阶段】模板类模板通用数组实现案例

以下内容仅为当前认识&#xff0c;可能有不足之处&#xff0c;欢迎讨论&#xff01; 文章目录 模板怎么使用模板函数模板注意事项普通函数与函数模板的区别普通函数与函数模板调用规则函数模板限制 类模板类模板语法类模板与函数模板区别类模板中成员函数创建时机类模板对象做函…

【御控物联】JSON结构数据转换在物流调度系统中的应用(场景案例三)

文章目录 一、前言二、场景概述三、解决方案四、在线转换工具五、技术资料 一、前言 物流调度是每个生产厂区必不可少的一个环节&#xff0c;主要包括线边物流和智能仓储。线边物流是指将物料定时、定点、定量配送到生产作业一线的环节&#xff0c;其包括从集中仓库到线边仓、…

C++从入门到精通——nullptr

nullptr 前言一、指针空值NULL二、指针空值nullptr(C11)C98中的指针空值 三、NULL与nullptr的区别总结 前言 nullptr是C11引入的一个新特性&#xff0c;用于表示空指针。它提供了一种类型安全的方式来区分空指针和非空指针&#xff0c;避免了传统空指针&#xff08;如NULL或0&…

3.java openCV4.x 入门-数据类型(CvType)与Scalar

专栏简介 &#x1f492;个人主页 &#x1f4f0;专栏目录 点击上方查看更多内容 &#x1f4d6;心灵鸡汤&#x1f4d6;我们唯一拥有的就是今天&#xff0c;唯一能把握的也是今天 &#x1f9ed;文章导航&#x1f9ed; ⬆️ 2.hello openCV ⬇️ 4.待更新 数据类型&#xff…

C++之类和对象的中篇

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇:Solitary_walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”。…

vCenter Server出现no healthy upstream的解决方法

https://blog.51cto.com/wangchunhai/4907250 访问vCenter 7.0 地址后&#xff0c;页面出现“no healthy upstream”,无法正常登录vCenter&#xff0c;重启后依旧如此&#xff0c;该故障的前提是没有对vCenter做过任何配置&#xff0c;如下图所示。 尝试登录"VMware vCen…