Spring Boot 指定外部啟動(dòng)配置文件詳解
默認(rèn)的打包spring boot項(xiàng)目會(huì)把配置文件打到j(luò)ar包中,有時(shí)候在測(cè)試時(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è)配置文件名可以通過(guò)spring.config.name
修改),比如./config/application.yml
會(huì)覆蓋./application.yml及classpath:/config/applicaiton.yml
中的同名配置。
即最簡(jiǎn)單的方法是放置一個(gè)配置文件到j(luò)ar包同層目錄下,或是同層目錄下的config子目錄下,啟動(dòng)jar包即可加載配置文件實(shí)現(xiàn)配置項(xiàng)的覆蓋。
指定外部的配置文件
當(dāng)然可以通過(guò)修改啟動(dòng)參數(shù)spring.config.location
的值來(lái)指定加載目錄或是加載文件:
$ java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties
這樣不會(huì)去默認(rèn)位置加載配置文件,而是加載類路徑下的default.properties
和override.properties
文件,override.properties
中的同名配置會(huì)覆蓋default.properties的。
如果指定的路徑是以/結(jié)尾則是目錄配置,會(huì)去目錄下找配置文件。這個(gè)參數(shù)默認(rèn)的配置為:
classpath:/,classpath:/config/,file:./,file:./config/
可以對(duì)照上文中的默認(rèn)查找路徑,是從右到左覆蓋的。
特定配置
在開(kāi)發(fā)、測(cè)試、發(fā)布過(guò)程中,這三個(gè)場(chǎng)景比較固定,通常會(huì)定義三份不同的配置application-{profile}.yml,在使用時(shí)通過(guò)profile參數(shù)來(lái)切換。
applicaiton-dev.yml applicaiton-test.yml applicaiton-prd.yml
啟動(dòng)時(shí),通過(guò)指定spring.profiles.active
參數(shù)來(lái)切換配置文件
java -jar myproject.jar --spring.profiles.active=test
當(dāng)然指定特定配置也滿足配置文件覆蓋的規(guī)則,但是一旦指定的spring.config.location不是目錄,而是具體文件時(shí),這個(gè)參數(shù)切換就失去作用了。
具體更多的擴(kuò)展配置可以參考 spring boot的官方文檔Externalized Configuration章節(jié)。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Android仿微信實(shí)現(xiàn)左滑顯示刪除按鈕功能
這篇文章主要為大家詳細(xì)介紹了java仿微信實(shí)現(xiàn)左滑顯示刪除按鈕功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10IDEA配置MAVEN本地倉(cāng)庫(kù)的實(shí)現(xiàn)步驟
本文主要介紹了IDEA配置MAVEN本地倉(cāng)庫(kù)的實(shí)現(xiàn)步驟,將詳細(xì)介紹如何配置Maven環(huán)境變量,Maven配置文件,可以輕松地設(shè)置和配置MAVEN本地倉(cāng)庫(kù),以便在IDEA中享受更高效的開(kāi)發(fā)體驗(yàn)2023-08-08SpringBoot應(yīng)用部署于外置Tomcat容器的方法
這篇文章主要介紹了SpringBoot應(yīng)用部署于外置Tomcat容器的方法,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06import java和javax區(qū)別小結(jié)
Java包和javax包在Java編程語(yǔ)言中都起著至關(guān)重要的作用,本文就來(lái)介紹一下import java和javax區(qū)別小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2024-10-10SpringCloud Zuul過(guò)濾器實(shí)現(xiàn)登陸鑒權(quán)代碼實(shí)例
這篇文章主要介紹了SpringCloud Zuul過(guò)濾器實(shí)現(xiàn)登陸鑒權(quán)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03JAVA中excel導(dǎo)出一對(duì)多合并具體實(shí)現(xiàn)
項(xiàng)目中經(jīng)常會(huì)使用到導(dǎo)出功能,有導(dǎo)出Word,有導(dǎo)出Excel的,下面這篇文章主要給大家介紹了關(guān)于JAVA中excel導(dǎo)出一對(duì)多合并具體實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2023-09-09java判定數(shù)組或集合是否存在某個(gè)元素的實(shí)例
下面小編就為大家?guī)?lái)一篇java判定數(shù)組或集合是否存在某個(gè)元素的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01詳解Spring簡(jiǎn)單容器中的Bean基本加載過(guò)程
本篇將對(duì)定義在 XMl 文件中的 bean,從靜態(tài)的的定義到變成可以使用的對(duì)象的過(guò)程,即 bean 的加載和獲取的過(guò)程進(jìn)行一個(gè)整體的了解2017-05-05