springboot啟動讀取外部配置文件實現(xiàn)方式
有時候,線上的服務(wù)器配置,只有運(yùn)維人員知道,開發(fā)人員是不知道的。所以在 springboot項目中,如何解決運(yùn)行時加載外部運(yùn)維定義的(沒有被打包進(jìn)jar文件)配置信息呢?
springboot啟動讀取外部配置文件
springboot 有讀取配置文件的方法,如下優(yōu)先級:
- 第一種是在jar包的同一目錄下建一個
config文件夾,然后把配置文件放到這個文件夾下,即./config/目錄下。./表示jar包所在目錄。 - 第二種是直接把配置文件放到
jar包的同級目錄,即./目錄下。 - 第三種在classpath下建一個config文件夾,然后把配置文件放進(jìn)去。即
classpath:/config/目錄下。 - 第四種是在classpath下直接放配置文件。即
classpath:/目錄下。
知道這個就好辦了。
如下圖,在jar包文件下,新建config文件夾,同時將線上的配置信息放進(jìn)去。

- config文件夾下內(nèi)容:

最后,在jar包下打開命令窗口,執(zhí)行如下命令就可以運(yùn)行程序,并且 引用外部配置文件application.yml和application-prod.yml里面的內(nèi)容了。

特別關(guān)注
值得注意的是,我的將代碼打包時,也會有一份配置信息。

由于上面提到了,springboot 有讀取配置文件有優(yōu)先級次序。
所以,最后還是為讀取到打包進(jìn)clathpath底下的配置文件application.yml。
那么問題又來了,如果外部配置文件,和clathpash的 配置文件,配置信息又相同的部分或是不同的部分,分別時怎么處理的呢?
遵循以下原則:
- 如果
內(nèi)配置文件里有外配置文件沒有的配置,那兩者互補(bǔ)。比如外配置文件沒有配置數(shù)據(jù)庫,內(nèi)配置文件里配置了數(shù)據(jù)庫,那內(nèi)配置文件的配置會被使用。 - 如果
內(nèi)配置文件里和外配置文件里都有相同的配置,比如兩者都配置了數(shù)據(jù)庫,但是兩個連接的不同,那外配置文件會覆蓋內(nèi)配置文件里的配置。
總結(jié)
總結(jié)起來就是一句話,內(nèi)外都有相同的配置信息時聽外的,內(nèi)外有不同的配置信息時都生效。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Security使用數(shù)據(jù)庫認(rèn)證及用戶密碼加密和解密功能
這篇文章主要介紹了Spring Security使用數(shù)據(jù)庫認(rèn)證及用戶密碼加密和解密,本文通過代碼與截圖的形式給大家介紹的非常詳細(xì),對大家的工作或?qū)W習(xí)具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
SpringBoot CountDownLatch多任務(wù)并行處理的實現(xiàn)方法
本篇文章主要介紹了SpringBoot CountDownLatch多任務(wù)并行處理的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04
詳解如何更改SpringBoot TomCat運(yùn)行方式
這篇文章主要介紹了詳解如何更改SpringBoot TomCat運(yùn)行方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
SpringBoot實現(xiàn)發(fā)送郵件功能過程圖解
這篇文章主要介紹了SpringBoot實現(xiàn)發(fā)送郵件功能過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03
SpringBoot集成Redis使用Cache緩存的實現(xiàn)方法
SpringBoot通過配置RedisConfig類和使用Cache注解可以輕松集成Redis實現(xiàn)緩存,主要包括@EnableCaching開啟緩存,自定義key生成器,改變序列化規(guī)則,以及配置RedisCacheManager,本文為使用SpringBoot與Redis處理緩存提供了詳實的指導(dǎo)和示例,感興趣的朋友一起看看吧2024-10-10

