Spring Boot 2.4版本前后的分組配置變化及對多環(huán)境配置結構的影響(推薦)
前幾天在《Spring Boot 2.4 對多環(huán)境配置的支持更改》一文中,給大家講解了Spring Boot 2.4版本對多環(huán)境配置的配置變化。除此之外,還有一些其他配置變化,所以今天我們就繼續(xù)講講其他的更新內容!
spring.profiles.include
對于這個配置項,你是否熟悉呢?從字面意思也不難理解,應該就是用來引入一些其他配置的配置(因為有個include嘛),實際作用也確實如此!
當我們的應用有很多配置信息的時候,比如當用到了很多中間件MySQL、Redis、MQ等,每個中間件的配置都是一大串的,那么這個時候我們?yōu)榱伺渲酶啙嵰恍?,可能就會對其做分組。
如果你有用過這樣的配置方式,那么在升級2.4版本的時候一定要注意,因為原來的配置方法會失效!
2.4之前的分組配置
先來看看2.4版本之前的分組配置,我們用下面這個例子來介紹:
spring: profiles: active: "dev" --- spring.profiles: "dev" spring.profiles.include: "dev-db,dev-mq" --- spring.profiles: "dev-db" db: dev-db.didispace.com --- spring.profiles: "dev-mq" mq: dev-mq.didispace.com
其中:
第一個spring.profiles.active: dev
,代表默認激活dev
配置
第二段dev
配置中使用了spring.profiles.include
來引入其他配置信息,這里模擬一下一個是dev的db配置,一個是dev的mq配置。在2.3和之前版本的時候,我們通常就是這樣來分組配置不同中間件的。
spring.profiles: "dev" spring.profiles.include: "dev-db,dev-mq"
文末我們提供一個樣例工程,你可以通過修改spring boot版本到2.3和配置信息使用上面的樣例,來啟動應用看看這種配置效果。不出意外,你可以在啟動日志開頭,看到激活的配置信息如下:
The following profiles are active: dev,dev-db,dev-mq
同時激活了dev、dev-db、dev-mq三組配置,include是生效的。
2.4的分組配置
在升級spring boot到2.4之后,再啟動之前的應用,你會發(fā)現(xiàn)配置就沒有生效了,這里不僅是因為spring.profiles
失效的原因,即使我們將其都修改為spring.config.activate.on-profile
,也依然無法激活dev-db和dev-mq的配置。因為在2.4版本之后,我們需要使用spring.profiles.group來配置了,同時組織結構也發(fā)生了變化。
可以嘗試把配置修改成如下格式:
spring: profiles: active: "dev" group: "dev": "dev-db,dev-mq" "prod": "prod-db,prod-mq" --- spring: config: activate: on-profile: "dev-db" db: dev-db.didispace.com --- spring: config: activate: on-profile: "dev-mq" mq: dev-mq.didispace.com --- spring: config: activate: on-profile: "prod-db" db: prod-db.didispace.com --- spring: config: activate: on-profile: "prod-mq" mq: prod-mq.didispace.com
啟動應用可以在日志開頭看到激活的配置組(默認激活的是dev,所以對應的就是dev-db和dev-mq):
The following profiles are active: dev,dev-db,dev-mq
、修改spring.profiles.active: "prod"
直接切換到另外一個環(huán)境。
重啟應用可以在日志開頭看到激活的配置組:
The following profiles are active: prod,prod-db,prod-mq
可以看到,在2.4版本的配置中,不同環(huán)境的配置定義都在第一段默認配置中了,所有的環(huán)境定義都轉移到了spring.profiles.group
的key字段(上面配置了dev
和prod
),value字段則代表了每個環(huán)境需要加載的不同配置分組。
回憶一下我們在《Spring Boot 2.4 對多環(huán)境配置的支持更改》中提到的多環(huán)境配置,是不是不同環(huán)境的配置標識都集中定義在了每個spring.config.activate.on-profile
里。而這次分組的配置改變,讓激活配置、環(huán)境配置集中到了默認配置里,其他的profile定義是環(huán)境+配置分組的組合內容。
對于這樣的調整,最直觀的感受就是選擇環(huán)境的時候,我不需要往下找有哪些profile就能知道有哪些可選項了,還是方便不少。那么你對這樣的配置調整怎么看呢?歡迎留言討論!
代碼示例
本文的相關例子可以查看下面?zhèn)}庫中的chapter1-3
目錄:
Github:https://github.com/dyc87112/SpringBoot-Learning/
Gitee:https://gitee.com/didispace/SpringBoot-Learning/
到此這篇關于Spring Boot 2.4版本前后的分組配置變化及對多環(huán)境配置結構的影響的文章就介紹到這了,更多相關Spring Boot 2.4分組配置變化內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
log4j2 自動刪除過期日志文件的配置及實現(xiàn)原理
這篇文章主要介紹了log4j2 自動刪除過期日志文件配置及實現(xiàn)原理解析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07微服務鏈路追蹤Spring Cloud Sleuth整合Zipkin解析
這篇文章主要為大家介紹了微服務鏈路追蹤Spring Cloud Sleuth整合Zipkin解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02Mybatis-Plus條件構造器select方法返回指定字段方式
這篇文章主要介紹了Mybatis-Plus條件構造器select方法返回指定字段方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06