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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/780976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯 付账问题

Problem: 蓝桥杯 付账问题 文章目录 思路解题方法复杂度Code 思路 这是一个关于付款问题的题目,我们需要找到一个最优的付款策略,使得每个人付款的金额尽可能接近平均值。我们可以通过排序和贪心的策略来解决这个问题。 解题方法 首先,我们将…

【JS】null和undefined有什么区别

前言 JS的作者Brendan Eich曾说过两者的区别: null means “no object”, undefined > “no value”.Really it’s an abstraction leak:null and objects shared a Mocha type tag. 翻译后: null 表示“没有对象”,undefined…

STM32学习笔记(9_3)- USART串口代码

无人问津也好,技不如人也罢,都应静下心来,去做该做的事。 最近在学STM32,所以也开贴记录一下主要内容,省的过目即忘。视频教程为江科大(改名江协科技),网站jiangxiekeji.com 本期介…

html目录

标签列表 基础 <!DOCTYPE> &#xff1a;文档类型 <html>&#xff1a;HTML 文档 <title> &#xff1a;文档标题 <body>&#xff1a;文档主体 <h1> to <h6>&#xff1a;HTML 标题 <p> &#xff1a;段落 <br>&am…

Memcached 教程之Memcached介绍(一)

Memcached 教程 Memcached是一个自由开源的&#xff0c;高性能&#xff0c;分布式内存对象缓存系统。 Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款软件。现在已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用…

POSIX信号量

1.快速认识信号量接口 POSIX信号量和SystemV信号量作用相同&#xff0c;都是用于同步操作&#xff0c;达到无冲突的访问共享资源目的。 但POSIX可以用于线程间同步。我们之前认识SystemV信号量时有这样三个结论&#xff1a; 1.信号量的本质是一把计数器 2.申请信号量本质就是预…

进程调度算法

进程调度算法 进程调度算法先来先服务调度基于优先级调度&#xff08;Priority Scheduling&#xff09;短进程优先 / 最短剩余时间优先轮转法&#xff08;Round-Robin Scheduling&#xff09;高响应比优先调度算法&#xff08;Highest Response Ratio Next&#xff09;多级反馈…

word点保存图片模糊

在Word中&#xff0c;通过**点击左上角的“文件”按钮&#xff0c;选择“选项”&#xff0c;然后在“高级”选项中找到“图像大小和质量”&#xff0c;勾选【不压缩文件中的图像】选项&#xff0c;**以防止在保存文件时自动压缩图片。 如果已经保存了文档并且图片变得模糊&…

mysql 常见数据表操作

前面介绍了数据库表的基本操作。把常用的做一个汇总。时间久了&#xff0c;记不得完整的语法了&#xff0c;再打开一看&#xff0c;就清楚了。 先看注意事项&#xff1a; 在设计数据库的时候有以下注意点和技巧。 1&#xff0c;禁用存储过程、函数、触发器、外键约束&#xff…

jupyter 设置工作目录

本博客主要介绍&#xff1a; 如何为jupyter设置工作目录 1.打开 anaconda prompt , 执行 jupyter notebook --generate-config 执行这个命令后会生成一个配置文件 2. 打开jupyter_notebook_config.py文件编辑 搜索notebook_dir&#xff0c;把这行代码的注释取消&#xff0c;…

stm32再实现感应开关盖垃圾桶

一、项目需求 检测靠近时&#xff0c;垃圾桶自动开盖并伴随滴一声&#xff0c;2秒后关盖 发生震动时&#xff0c;垃圾桶自动开盖并伴随滴一声&#xff0c;2秒后关盖 按下按键时&#xff0c;垃圾桶自动开盖并伴随滴一声&#xff0c;2秒后关盖 硬件清单 SG90 舵机&#xff0c;…

HTTP 与 HTTPS 的区别

基本概念 HTTP&#xff08;HyperText Transfer Protocol&#xff1a;超文本传输协议&#xff09;是一种应用层协议&#xff0c;主要用于在网络上进行信息的传递&#xff0c;特别是用于Web浏览器和服务器之间的通信。 它使用明文方式发送数据&#xff0c;这意味着传输的内容可…

MySQL中MD5()函数加密CONCAT()函数拼接的字段

在MySQL中&#xff0c;使用CONCAT()函数来连接多个字段&#xff0c;然后对其结果应用MD5()函数进行加密。 SQL查询语句 UPDATE po_electricity SET task_code MD5(CONCAT(school_id, -, electricity_month, LOCKDATAV)) WHERE electricity_id 43;UPDATE po_water …

公司服务器被.rmallox攻击了如何挽救数据?

公司服务器被.rmallox攻击了如何挽救数据&#xff1f; .rmallox这种病毒与之前的勒索病毒变种有何不同&#xff1f;它有哪些新的特点或功能&#xff1f; .rmallox勒索病毒与之前的勒索病毒变种相比&#xff0c;具有一些新的特点和功能。这种病毒主要利用加密技术来威胁用户&am…

【JavaScript】数组 ③ ( JavaScript 数组长度 | 修改数组长度 | 数组案例 )

文章目录 一、JavaScript 数组长度1、数组长度2、修改数组长度 二、数组案例1、求数组元素平均值2、求数组元素最大值 一、JavaScript 数组长度 1、数组长度 在 JavaScript 中 , 数组长度 可以通过 数组变量的 length 属性 获取 , 该属性 返回 数组中的元素数量 , 也就是 数组长…

数据结构 第6章 图(一轮习题总结)

数据结构 第6章 图 6.1 图的基本概念6.2 图的存储及基本操作6.3 图的遍历6.4 图的应用 6.1 图的基本概念&#xff08;2 4 11&#xff09; 6.2 图的存储及基本操作&#xff08;1 12 13 15 16&#xff09; 6.3 图的遍历&#xff08;2 3 5 16&#xff09; 6.4 图的应用 6.1 图的基…

【USB】C#使用HID通信

最近做了一个USB通信SDK, 通过HID跟单片机通信&#xff0c;之前研究了一下Libusb, Cyusb, 要么死的太早&#xff0c;要么封装的不好&#xff0c;最后绕来绕去发现还是HID好用&#xff0c;反编译了一个SimpleHid, 别说&#xff0c;用起来还是很酸爽的~~~ 1.设备识别 首先你要指…

基于微信小程序的日语词汇学习设计与实现(论文+源码)_kaic

日语词汇学习小程序 摘 要 日语词汇学习小程序是高校人才培养计划的重要组成部分&#xff0c;是实现人才培养目标、培养学生科研能力与创新思维、检验学生综合素质与实践能力的重要手段与综合性实践教学环节。本学生所在学院多采用半手工管理日语词汇学习小程序的方式&#x…

如何用Python脚本自动发送邮件?

目录 1. 基础知识 1.1. SSH&#xff08;Secure Shell&#xff09;协议 1.2. SMTP&#xff08;Simple Mail Transfer Protocol&#xff09;协议 1.3. SSH协议与SMTP协议之间的关系 2. QQ邮箱设置 2.1. 开启SMTP服务 2.2. 编写脚本 3. 测试成功 1. 基础知识 邮件的发送过…

从TCP/IP协议到socket编程详解

​ 我的所有学习笔记&#xff1a;https://github.com/Dusongg/StudyNotes⭐⭐⭐ ​ 文章目录 1 网络基础知识1.1 查看网络信息1.2 认识端口号1.3 UDP1.4 TCP1.4.1 确认应答机制1.4.2 TCP三次握手/四次挥手为什么是三次握手为什么是四次挥手listen 的第二个参数 backlog—— 全…