当前位置: 首页 > news >正文

SpringBoot -- Profiles

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

相关文章:

  • 手机无线投屏到windows11电脑
  • 基于深度学习的机场航拍小目标检测系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)
  • 49. QT中的HTTP通信与JSON数据格式解析
  • c#仿ppt案例
  • UE4 方块排序动画
  • 什么是自然语言处理(NLP)?自然语言处理(NLP)的概述
  • Jenkins执行策略(图文讲解)
  • Pandas处理缺省数据
  • win10微软拼音输入法 - bug - 在PATH变量为空的情况下,无法输入中文
  • 了解与生成火焰图
  • Ollama教程——入门:开启本地大型语言模型开发之旅
  • python的下载及安装
  • 四分之一的组织因遭遇攻击而关闭 OT 运营
  • 谷粒商城实战(008 缓存)
  • 数论与线性代数——整除分块【数论分块】的【运用】【思考】【讲解】【证明(作者自己证的QWQ)】
  • 详细总结前中后序、层次遍历二叉树(非递归方法)
  • 【Python】记录槽位法:Leetcode 894. 所有可能的真二叉树
  • 摸鱼toyaml.com更新
  • udhcpc 获取不到ip地址
  • 【教学类-09-07】20240401细线迷宫图02+箭头图片(A4横版一页-2份竖版)
  • 体坛联播|赵心童晋级世锦赛决赛,德布劳内一球制胜
  • 马克思主义理论研究教学名师系列访谈|薛念文:回应时代课题,才能彰显强大生命力
  • 日产淡水10万吨、全自动运行,万华化学蓬莱海水淡化厂投产
  • 新势力4月销量出炉:零跑逾4万辆再夺冠,蔚来环比增近六成,小米下滑
  • 微博:严厉打击对肖某董某事件蹭炒热点、编造故事博流量等行为
  • 特朗普称加总理将很快访美,白宫:不影响将加拿大打造成“第51个州”计划