springboot3環(huán)境隔離的實現(xiàn)
Profiles
環(huán)境隔離能力;快速切換開發(fā)、測試、生產(chǎn)環(huán)境
步驟:
- 標(biāo)識環(huán)境:指定哪些組件、配置在哪個環(huán)境生效{dev 開發(fā)環(huán)境 test 測試環(huán)境 prod 生產(chǎn)環(huán)境 defult 默認(rèn)環(huán)境 }
- 切換環(huán)境:這個環(huán)境對應(yīng)的所有組件和配置就應(yīng)該生效 只有激活對應(yīng)的環(huán)境,這些組件才會生效
使用
指定環(huán)境
Spring Profiles 提供一種隔離配置的方式,使其僅在特定環(huán)境生效;
任何@Component, @Configuration 或 @ConfigurationProperties 可以使用 @Profile 標(biāo)記,來指定何時被加載?!救萜髦械慕M件都可以被 @Profile標(biāo)記】
環(huán)境激活
配置激活指定環(huán)境; 配置文件
spring.profiles.active=production,hsqldb
也可以使用命令行激活。--spring.profiles.active=dev,hsqldb
還可以配置默認(rèn)環(huán)境; 不標(biāo)注@Profile 的組件永遠(yuǎn)都存在。
- 以前默認(rèn)環(huán)境叫default
- spring.profiles.default=test 不推薦通過修改默認(rèn)環(huán)境的方式來切換環(huán)境
推薦使用激活方式激活指定環(huán)境
也可以使用命令行激活。--spring.profiles.active=dev,hsqldb
還可以配置默認(rèn)環(huán)境; 不標(biāo)注@Profile 的組件永遠(yuǎn)都存在。
- 以前默認(rèn)環(huán)境叫default
- spring.profiles.default=test
推薦使用激活方式激活指定環(huán)境
環(huán)境包含
注意:
spring.profiles.active 和spring.profiles.default 只能用到 無 profile 的文件中,如果在application-dev.yaml中編寫就是無效的
也可以額外添加生效文件,而不是激活替換。比如:
spring.profiles.include[0]=common #包含指定的環(huán)境,不管激活哪個環(huán)境 spring.profiles.include[1]=local
最佳實戰(zhàn):
- 生效的環(huán)境 = 激活的環(huán)境/默認(rèn)環(huán)境 + 包含的環(huán)境【總是要生效的環(huán)境】
- 項目里面這么用
- 基礎(chǔ)的配置mybatis、log、xxx:寫到包含環(huán)境中
- 需要動態(tài)切換變化的 db、redis:寫到激活的環(huán)境中
Profile 分組
創(chuàng)建prod組,指定包含db和mq配置
spring.profiles.group.prod[0]=db spring.profiles.group.prod[1]=mq #直接按組激活相應(yīng)的環(huán)境 ,組內(nèi)可以寫環(huán)境配置也可以寫其他的環(huán)境配置組
使用--spring.profiles.active=prod ,就會激活prod,db,mq配置文件
Profile 配置文件
application-{profile}.properties可以作為指定環(huán)境的配置文件。
激活這個環(huán)境,配置就會生效。最終生效的所有配置是
- application.properties:主配置文件,任意時候都生效
- application-{profile}.properties:指定環(huán)境配置文件,激活指定環(huán)境生效
profile優(yōu)先級 > application
項目的所有生效配置項 = 激活環(huán)境配置中的所有項 + 主配置文件中的與環(huán)境配置文件不沖突的項
到此這篇關(guān)于springboot3環(huán)境隔離的實現(xiàn)的文章就介紹到這了,更多相關(guān)springboot3環(huán)境隔離內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java根據(jù)開始時間和結(jié)束時間及周幾計算日期的示例代碼
在Java 7中,java.time包不存在,所以我們需要使用java.util.Calendar和java.util.Date類來實現(xiàn)類似的功能,這篇文章主要介紹了Java根據(jù)開始時間和結(jié)束時間及周幾計算出日期的示例代碼,需要的朋友可以參考下2024-06-06解決PageHelper的上下文問題導(dǎo)致SQL查詢結(jié)果不正確
主要介紹了PageHelper在使用過程中出現(xiàn)的分頁上下文問題,并分析了可能的原因和解決方案,主要解決方案包括每次分頁查詢后調(diào)用`PageHelper.clearPage()`清理分頁上下文,確保每次查詢前正確調(diào)用`startPage`,以及避免在條件判斷未執(zhí)行SQL時影響后續(xù)查詢2024-12-12SpringBoot整合Security權(quán)限控制登錄首頁
這篇文章主要為大家介紹了SpringBoot整合Security權(quán)限控制登錄首頁示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11SpringBoot的監(jiān)控(Actuator)功能用法詳解
這篇文章主要介紹了SpringBoot的監(jiān)控(Actuator)功能用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03Java實現(xiàn)在線預(yù)覽的示例代碼(openOffice實現(xiàn))
本篇文章主要介紹了Java實現(xiàn)在線預(yù)覽的示例代碼(openOffice實現(xiàn)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11JavaCV實現(xiàn)讀取視頻信息及自動截取封面圖詳解
javacv可以幫助我們在java中很方便的使用OpenCV以及FFmpeg相關(guān)的功能接口。本文將利用Javacv實現(xiàn)在視頻網(wǎng)站中常見的讀取視頻信息和自動獲取封面圖的功能,感興趣的可以了解一下2022-06-06Java數(shù)組,去掉重復(fù)值、增加、刪除數(shù)組元素的方法
下面小編就為大家?guī)硪黄狫ava數(shù)組,去掉重復(fù)值、增加、刪除數(shù)組元素的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10