寫在前面 在實際項目的開發過程中,我們程式往往需要在不同環境中運行。例如:開發環境、測試環境和生產環境。 每個環境中的配置參數可能都會有所不同,例如資料庫連接信息、文件伺服器等等。 Spring Boot 提供了非常方便的方式來管理這些不同環境的配置。 一、Spring Profile 介紹 Spr ...
寫在前面
在實際項目的開發過程中,我們程式往往需要在不同環境中運行。例如:開發環境、測試環境和生產環境。
每個環境中的配置參數可能都會有所不同,例如資料庫連接信息、文件伺服器等等。
Spring Boot 提供了非常方便的方式來管理這些不同環境的配置。
一、Spring Profile 介紹
Spring Profile
是 Spring
框架用於處理不同環境配置的解決方案。
Profile
可以幫助我們在不改變應用代碼的情況下,根據當前環境動態地激活或者切換不同的配置。
Spring Boot
為每個 Profile
提供了一個獨立的 application.properties
(或 application.yml
)配置文件。
預設情況下,Spring Boot
使用的是 application.properties
文件。
當你激活一個特定的 Profile
時,Spring Boot
會查找名為 application-{profile}.properties
的文件,並把其中的屬性載入到 Spring Environment
中。
二、Properties與YAML
Spring Boot
支持使用Properties
和YAML
兩種配置方式。
兩者功能類似,都能完成Spring Boot
的配置,但是Properties
的優先順序要高於YMAL
2.1 Properties
-
Spring Boot
預設的配置文件格式 -
以“.”為分割的key=value鍵值對,例如,指定埠為8080 配置如下
server.port=8080
-
不支持複雜的數據結構,只支持字元串類型的鍵值對。因此,它的使用適用於簡單的配置場景
2.2YAML
-
採用樹狀結構,一目瞭然
server: port: 8080
-
在key後的冒號一定要跟一個空格,如“port: 8080”
-
YAML
格式文件不支持註解@PropertySource
導入配置 -
支持複雜的數據結構,如列表和鍵值對,因此,
YAML
的使用適用於需要表示覆雜數據結構的場合
2.3 如何選擇
在 Spring Boot
應用中,你可以根據自己的實際需求,選擇使用 YAML
還是 Properties
格式的配置文件。
如果你的配置比較簡單,Properties
格式可能會更好些。
如果你的配置比較複雜,或者你希望配置文件更具可讀性,那麼 YAML
格式可能是更好的選擇
三、創建配置文件
3.1 創建配置文件
在實際項目開發中,我們一般有三個環境:開發(dev
)、測試(test
)、生產(prod
)。我們需要建立如下幾個配置文件
application.yml
或者application.properties
用於存放所有環境通用的配置application-dev.yml
或者application-dev.properties
存放開發環境的特殊配置application-test.yml
或者application-test.properties
存放測試環境的特殊配置application-prod.yml
或者application-prod.properties
存放生產環境的特殊配置
3.2 配置文件內容
①配置開發環境
application-dev.yml
server:
port: 8080
tomcat:
uri-encoding: UTF-8
environment:
name: 開發環境
application-dev.properties
server.port=8080
server.tomcat.uri-encoding=UTF-8
environment.name=開發環境
②配置生產環境
application-prod.yml
server:
port: 8090
tomcat:
uri-encoding: UTF-8
environment:
name: 生產環境
application-prod.properties
server.port=8090
server.tomcat.uri-encoding=UTF-8
environment.name=生產環境
application-test.yml
和application-test.properties
配置文件類似,由於篇幅原因,這裡就不一一例舉了
四、激活 Profile
在上一小節中,我們創建了三個配置文件即配置了三種環境,那麼我們怎麼才能激活對應環境呢
4.1 配置文件激活
其實很多簡單,我們只需要在application.yml
或者application.properties
添加如下配置即可,即可激活開發環境
①application.yml
# application.yml
spring
profiles:
active: dev
②application.properties
spring.profiles.active=dev
4.2 啟動參數激活
在命令行中設置 spring.profiles.active
系統屬性。
例如,你可以使用以下命令來啟動你的應用,並激活 "prod" 環境:
# 企業級項目開發中,針對生產環境,一般通過啟動命令再指定激活生產 環境
java -jar $APP_NAME --spring.profiles.active=prod
4.3 環境變數激活
我們還可以通過配置伺服器系統環境變數來激活環境,在環境變數中設置SPRING_PROFILES_ACTIVE
即可,不過這種方式不常用,瞭解即可
五、測試是否生效
上一小節中,我們通過配置激活了開發環境,我們就來實際驗證以下是否生效。
出現下圖紅框表示部分,說明我們激活了dev
開發環境
本期內容就到這了,希望對你有所幫助,我們下期再見 (●'◡'●)
本文來自博客園,作者:xiezhr,轉載請註明原文鏈接:https://www.cnblogs.com/xiezhr/p/18107687