SpringBoot加載多個配置文件實現(xiàn)dev、product多環(huán)境切換的方法
前言
在公司真正的開發(fā)和生產(chǎn)中,同一套程序會被部署到幾個不同的環(huán)境,比如:開發(fā)、測試、生產(chǎn)等。其中每個環(huán)境的數(shù)據(jù)庫地址、服務器端口等等配置都會不同,這樣通過多個配置文件就做到了隔離,多個環(huán)境之間不會相互影響。但是這么多配置文件,項目啟動時SpringBoot如何確定加載哪一個呢?
1.SpringBoot中實現(xiàn)多環(huán)境切換
在SpringBoot中,除了application.properties,我們新建的其他配置文件的文件名需要滿足application-{profile}.properties的格式,其中{profile}對應你的環(huán)境標識(不一定是.properties文件,也可以是.yml)其對應的{profile}值是開發(fā)者自定義的(如dev,product),在項目啟動的時候,只需要添加對應的參數(shù),springboot就會去讀取該配置文件了。具體profile的配置在application.properties文件中通過spring.profiles.active屬性來設置。接下來我們以一個例子來說明
(1)首先這里創(chuàng)建了dev、product、qa、stage和默認的application五個配置文件

(2)加載配置文件時會先加載application.properties配置文件(這里一般存放一些公共配置),在該文件中配置要加載的環(huán)境的配置文件,這里有兩種配置方法。
例如要加載dev環(huán)境,可以在application.properties中這樣配置
spring.profiles.active=dev
或者使用@spring.profiles.active@,如下所示
spring.profiles.active=@spring.profiles.active@
如果使用這種方式則需要在pom.xml中添加以下內(nèi)容,其中activeByDefault標簽來指定項目啟動時默認加載的配置文件。
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<spring.profiles.active>dev</spring.profiles.active>
</properties>
</profile>
<profile>
<id>qa</id>
<properties>
<spring.profiles.active>qa</spring.profiles.active>
</properties>
</profile>
<profile>
<id>stage</id>
<properties>
<spring.profiles.active>stage</spring.profiles.active>
</properties>
</profile>
<profile>
<id>product</id>
<properties>
<spring.profiles.active>product</spring.profiles.active>
</properties>
</profile>
</profiles>
當執(zhí)行mvn clean package -P dev 命令對項目進行打包發(fā)布時,打出來的jar/war包中的配置文件中@spring.profiles.active@ 會被替換成 dev。
注意
@spring.profiles.active@要與pom中的標簽<spring.profiles.active>> 保持一致,否則會報錯。

2.SpringBoot中配置文件加載順序
配置文件的優(yōu)先級排序(以哪個配置文件為準):
1、項目根目錄下的config目錄?!緝?yōu)先級最高】
2、項目根目錄。
3、classpath下的config目錄。
4、classpath目錄(新建項目時application.properties默認所在位置)。【優(yōu)先級最低】
配置文件加載順序和優(yōu)先級順序相反,優(yōu)先級低的先加載,因為如果有重復的配置,先加載的配置文件會被覆蓋。
同一級目錄下,如果是application.yml,application.properties配置文件同時存在,會以application.properties配置文件為準,也就是說先加載.yml文件后加載.properties文件。

優(yōu)先級順序:1->2->3->4->5。
文件加載順序:5->4->3->2->1。
到此這篇關(guān)于SpringBoot加載多個配置文件實現(xiàn)dev、product多環(huán)境切換的文章就介紹到這了,更多相關(guān)SpringBoot加載多個配置文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringCloud微服務網(wǎng)關(guān)限流方式
這篇文章主要介紹了SpringCloud微服務網(wǎng)關(guān)限流方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
Mybatis Criteria使用and和or進行聯(lián)合條件查詢的操作方法
這篇文章主要介紹了Mybatis Criteria的and和or進行聯(lián)合條件查詢的方法,本文通過例子給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2021-10-10
這一次搞懂Spring代理創(chuàng)建及AOP鏈式調(diào)用過程操作
這篇文章主要介紹了這一次搞懂Spring代理創(chuàng)建及AOP鏈式調(diào)用過程操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
SpringBoot結(jié)合Redis實現(xiàn)緩存管理功能
本篇文章主要介紹spring boot緩存管理機制及相關(guān)概念,以及如何結(jié)合Redis實現(xiàn)緩存管理,文中通過代碼示例給大家介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下2024-01-01
Java?swing實現(xiàn)應用程序?qū)?shù)據(jù)庫的訪問問題
這篇文章主要介紹了Java?swing實現(xiàn)應用程序?qū)?shù)據(jù)庫的訪問,本次實驗需要做一個GUI界面和一個連接查詢功能,在論壇上借鑒了其他大佬獲取網(wǎng)站內(nèi)容的部分代碼,然后自己做了一個及其簡陋的swing界面,算是把這個實驗完成了,需要的朋友可以參考下2022-09-09

