SpringBoot - 第十一章 | 多環境配置
在前面關於Spring Boot「配置說明」花了三個章節來做介紹和教學,分別是 第六章 - SpringBoot配置說明(一) 、 第七章 - SpringBoot配置說明(二) 、 第八章 - SpringBoot配置說明(三) ,說明了在開發的階段會需要設定基本的屬性或是自定義的屬性,而且通常會被應用和安裝到幾個不同的環境上,比如:開發(dev)、測試(test)、生產(prod)…等,其中對應的每個環境的資料庫地址、伺服器port等等配置都會不同,如果在為不同環境打包時都要頻繁修改配置文件的話,那必將是個非常繁瑣且容易發生錯誤。
maven的多環境配置
在沒有使用過Spring Boot的多環境配置時,是用maven的profile功能進行多環境配置。
- maven配置pom.xml
1 | <profiles> |
- 設定 application.properties
1 | server.port=${pom.port} |
- 執行編譯
1 | mvn clean install -DskipTests -Ptest |
-Ptest表示編譯為測試環境,對應<profile>下的<id>test</id>
Spring Boot 多環境配置
在Spring Boot中多環境配置文件名需要滿足application-{profile}.properties的格式,其中{profile}對應你的環境標示
- application-dev.properties:開發環境
- application-test.properties:測試環境
- application-prod.properties:生產環境
而決定使用哪種環境的的配置文件,需要在application.properties中通過spring.profiles.active屬性來設定,其值對應{profile}值。
1 | # 指定dev開發環境 |
spring.profiles.active=dev 就會載入 application-dev.properties 配置文件内容
簡單測試
新增三個環境的配置文件application-dev.properties、application-test.properties、application-prod.properties
三個配置文件設定server.port屬性,dev = 6666 、 test = 7777 、 prod = 8888
application.properties 設定 spring.profiles.active=dev,表示預設為dev環境設定
- 測/試不同配置的加載
1 | 1. 執行java -jar xxx.jar,port被設定為6666,預設的開發環境(dev) |
- 最後總結一下多環境的配置思路:
1 | 1. application.properties中配置通用內容,並設定spring.profiles.active=dev,以開發環境為預設配置 |