溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Spring Boot指定外部啟動(dòng)配置文件的示例分析

發(fā)布時(shí)間:2021-09-09 13:37:42 來源:億速云 閱讀:249 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了Spring Boot指定外部啟動(dòng)配置文件的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

默認(rèn)的打包spring boot項(xiàng)目會(huì)把配置文件打到j(luò)ar包中,有時(shí)候在測試時(shí)需要想修改某些配置項(xiàng)。這時(shí)除了可以用啟動(dòng)參數(shù)覆蓋配置項(xiàng)以外,還可以指定外部的配置文件覆蓋已有配置文件。在需要修改較多配置參數(shù)的時(shí)候會(huì)很方便。

使用spring boot默認(rèn)的配置文件路徑

默認(rèn)的查找路徑如下:

1.file:./config/

2.file:./

3.classpath:/config/

4.classpath:/

會(huì)依次從1-4的位置查找加載application.yml或者是application.properties(這個(gè)配置文件名可以通過spring.config.name修改),比如./config/application.yml會(huì)覆蓋./application.yml及classpath:/config/applicaiton.yml中的同名配置。

即最簡單的方法是放置一個(gè)配置文件到j(luò)ar包同層目錄下,或是同層目錄下的config子目錄下,啟動(dòng)jar包即可加載配置文件實(shí)現(xiàn)配置項(xiàng)的覆蓋。

指定外部的配置文件

當(dāng)然可以通過修改啟動(dòng)參數(shù)spring.config.location的值來指定加載目錄或是加載文件:

$ java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties

這樣不會(huì)去默認(rèn)位置加載配置文件,而是加載類路徑下的default.propertiesoverride.properties文件,override.properties中的同名配置會(huì)覆蓋default.properties的。

如果指定的路徑是以/結(jié)尾則是目錄配置,會(huì)去目錄下找配置文件。這個(gè)參數(shù)默認(rèn)的配置為:

classpath:/,classpath:/config/,file:./,file:./config/

可以對照上文中的默認(rèn)查找路徑,是從右到左覆蓋的。

特定配置

在開發(fā)、測試、發(fā)布過程中,這三個(gè)場景比較固定,通常會(huì)定義三份不同的配置application-{profile}.yml,在使用時(shí)通過profile參數(shù)來切換。

applicaiton-dev.yml
applicaiton-test.yml
applicaiton-prd.yml

啟動(dòng)時(shí),通過指定spring.profiles.active參數(shù)來切換配置文件

java -jar myproject.jar --spring.profiles.active=test

當(dāng)然指定特定配置也滿足配置文件覆蓋的規(guī)則,但是一旦指定的spring.config.location不是目錄,而是具體文件時(shí),這個(gè)參數(shù)切換就失去作用了。

具體更多的擴(kuò)展配置可以參考 spring boot的官方文檔Externalized Configuration章節(jié)。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Spring Boot指定外部啟動(dòng)配置文件的示例分析”這篇文章對大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI