Spring Boot 指定外部啟動配置文件詳解
默認的打包spring boot項目會把配置文件打到j(luò)ar包中,有時候在測試時需要想修改某些配置項。這時除了可以用啟動參數(shù)覆蓋配置項以外,還可以指定外部的配置文件覆蓋已有配置文件。在需要修改較多配置參數(shù)的時候會很方便。
使用spring boot默認的配置文件路徑
默認的查找路徑如下:
1.file:./config/
2.file:./
3.classpath:/config/
4.classpath:/
會依次從1-4的位置查找加載application.yml或者是application.properties(這個配置文件名可以通過spring.config.name修改),比如./config/application.yml會覆蓋./application.yml及classpath:/config/applicaiton.yml中的同名配置。
即最簡單的方法是放置一個配置文件到j(luò)ar包同層目錄下,或是同層目錄下的config子目錄下,啟動jar包即可加載配置文件實現(xiàn)配置項的覆蓋。
指定外部的配置文件
當然可以通過修改啟動參數(shù)spring.config.location的值來指定加載目錄或是加載文件:
$ java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties
這樣不會去默認位置加載配置文件,而是加載類路徑下的default.properties和override.properties文件,override.properties中的同名配置會覆蓋default.properties的。
如果指定的路徑是以/結(jié)尾則是目錄配置,會去目錄下找配置文件。這個參數(shù)默認的配置為:
classpath:/,classpath:/config/,file:./,file:./config/
可以對照上文中的默認查找路徑,是從右到左覆蓋的。
特定配置
在開發(fā)、測試、發(fā)布過程中,這三個場景比較固定,通常會定義三份不同的配置application-{profile}.yml,在使用時通過profile參數(shù)來切換。
applicaiton-dev.yml applicaiton-test.yml applicaiton-prd.yml
啟動時,通過指定spring.profiles.active參數(shù)來切換配置文件
java -jar myproject.jar --spring.profiles.active=test
當然指定特定配置也滿足配置文件覆蓋的規(guī)則,但是一旦指定的spring.config.location不是目錄,而是具體文件時,這個參數(shù)切換就失去作用了。
具體更多的擴展配置可以參考 spring boot的官方文檔Externalized Configuration章節(jié)。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
SpringBoot應(yīng)用部署于外置Tomcat容器的方法
這篇文章主要介紹了SpringBoot應(yīng)用部署于外置Tomcat容器的方法,本文分步驟給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2018-06-06
import java和javax區(qū)別小結(jié)
Java包和javax包在Java編程語言中都起著至關(guān)重要的作用,本文就來介紹一下import java和javax區(qū)別小結(jié),具有一定的參考價值,感興趣的可以了解一下2024-10-10
SpringCloud Zuul過濾器實現(xiàn)登陸鑒權(quán)代碼實例
這篇文章主要介紹了SpringCloud Zuul過濾器實現(xiàn)登陸鑒權(quán)代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-03-03

