首頁>技術>

在目前最新的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目錄:

Github:https://github.com/dyc87112/SpringBoot-Learning/Gitee:https://gitee.com/didispace/SpringBoot-Learning/

如果您覺得本文不錯,歡迎Star支援,您的關注是我堅持的動力!

32
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 來自GitHub 68.8k star的硬核演算法教程