1. 程式人生 > >Spring Boot 2.4 對多環境配置的支援更改

Spring Boot 2.4 對多環境配置的支援更改

在目前最新的Spring Boot 2.4版本中,對配置的載入機制做了較大的調整。相關的問題最近也被問的比較多,所以今天就花點時間,給大家講講Spring Boot 2.4的多環境配置較之前版本有哪些變化。 ## 多環境配置 **2.4版本之前** 先回顧下,2.4版本之前,我們在yaml配置檔案中,使用`spring.profiles`來定義不同環境的標識,比如下面這樣: ```yaml 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`替代,比如上面的配置需要修改為如下配置: ```yaml 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配置中,這樣的作用就可以指定預設使用某一個環境的配置,通常我們可以設定成開發環境,這樣有利於我們平時的開發除錯,而真正部署到其他環境的時候則多以命令引數啟用為主。 ```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/](https://github.com/dyc87112/SpringBoot-Learning/tree/master/2.x) - Gitee:[https://gitee.com/didispace/SpringBoot-Learning/](https://gitee.com/didispace/SpringBoot-Learning/tree/master/2.x) 如果您覺得本文不錯,歡迎Star支援,您的關注是我堅持的動力! ## 相關閱讀 - [Spring Boot 1.x:屬性配置檔案詳解](http://blog.didispace.com/springbootproperties/) - [Spring Boot 2.0:配置繫結 2.0 全解析](http://blog.didispace.com/Spring-Boot-2-0-feature-1-relaxed-binding-2/) - [Spring Boot 2.x基礎教程:配置檔案詳解](http://blog.didispace.com/spring-boot-learning-21-1-3/) > 歡迎關注我的公眾號:程式猿DD,獲得獨家整理的免費學習資源助力你的Java學習之路!另每週贈書不