背景
我們在開發springboot項目時,通常一套程序會被應用和安裝到幾個不同的環境,比如:開發,測試,生產等。其中每個環境的數據庫地址,服務器端口等等配置都會不同。如果為不同的環境打包的時候都要頻繁修改配置文件的話,那必將是個非常繁瑣且容易發生錯誤的事情。
對於多環境配置,通過配置多份不同環境的配置文件,在通過打包啟動命令進行區分會更靈活,方便。
解決
1.在spring中多環境配置文件名需要滿足application-{profile}.properties的格式
其中{profile}對應的是環境標識,比如:
- application-dev.properties:開發環境
- application-test.properties:測試環境
- application-prod.properties:生產環境
至於哪個具體環境的配置文件被加載,需要在application.properties文件中通過spring.profiles.active屬性來設置,其值對應${profile}值。
如:spring.profiles.active = test 就會加載application-test.properties配置文件內容。
2.如果不想在項目中寫死環境配置,也可以在打包或者運行的時候傳入環境參數來確定。
如:java -jar ${jar_name} --spring.profiles.active=test
3.如果同一個環境有多個配置文件,可以通過spirng.profiles.include實現多配置文件
4.如果想在某個配置文件中引用其他配置文件的內容,可以使用${}符號實現