Spring Boot 2.4 對多環境配置的支援更改
- 2020 年 12 月 17 日
- 筆記
在目前最新的Spring Boot 2.4版本中,對配置的載入機製做了較大的調整。相關的問題最近也被問的比較多,所以今天就花點時間,給大家講講Spring Boot 2.4的多環境配置較之前版本有哪些變化。
多環境配置
2.4版本之前
先回顧下,2.4版本之前,我們在yaml配置文件中,使用spring.profiles
來定義不同環境的標識,比如下面這樣:
spring:
profiles: "dev"
name: dev.didispace.com
---
spring:
profiles: "test"
name: test.didispace.com
---
spring:
profiles: "prod"
name: prod.didispace.com
2.4版本之後
而在本次2.4版本升級之後,我們需要將spring.profiles
配置用spring.config.activate.on-profile
替代,比如上面的配置需要修改為如下配置:
spring:
config:
activate:
on-profile: "dev"
name: dev.didispace.com
---
spring:
config:
activate:
on-profile: "test"
name: test.didispace.com
---
spring:
config:
activate:
on-profile: "prod"
name: prod.didispace.com
指定環境啟動
應用啟動的時候,我們要載入不同的環境配置的參數不變,依然採用spring.profiles.active
參數,對應值採用spring.config.activate.on-profile
定義的標識名稱。比如下面的命令就能激活dev
環境的配置。
java -jar myapp.jar -Dspring.profiles.active=dev
在應用啟動的時候,我們也能看到對應的配置激活日誌:
2020-12-16 16:34:20.614 INFO 5951 --- [ main] c.d.chapter12.Chapter12Application : The following profiles are active: dev
我們也可以將spring.profiles.active
寫入yaml配置中,這樣的作用就可以指定默認使用某一個環境的配置,通常我們可以設置成開發環境,這樣有利於我們平時的開發調試,而真正部署到其他環境的時候則多以命令參數激活為主。
spring:
profiles:
active: "dev"
---
spring:
config:
activate:
on-profile: "dev"
name: dev.didispace.com
---
spring:
config:
activate:
on-profile: "test"
name: test.didispace.com
---
spring:
config:
activate:
on-profile: "prod"
name: prod.didispace.com
程式碼示例
本文的相關例子可以查看下面倉庫中的chapter1-2
目錄:
如果您覺得本文不錯,歡迎Star支援,您的關注是我堅持的動力!
相關閱讀
歡迎關注我的公眾號:程式猿DD,獲得獨家整理的免費學習資源助力你的Java學習之路!另每周贈書不停哦~