您好,登錄后才能下訂單哦!
這篇文章主要介紹“SpringBoot怎么加載多個配置文件實現dev、product多環境切換”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“SpringBoot怎么加載多個配置文件實現dev、product多環境切換”文章能幫助大家解決問題。
在SpringBoot中,除了application.properties,我們新建的其他配置文件的文件名需要滿足application-{profile}.properties
的格式,其中{profile}
對應你的環境標識(不一定是.properties文件,也可以是.yml)其對應的{profile}
值是開發者自定義的(如dev,product),在項目啟動的時候,只需要添加對應的參數,springboot就會去讀取該配置文件了。具體profile的配置在application.properties
文件中通過spring.profiles.active
屬性來設置。接下來我們以一個例子來說明
(1)首先這里創建了dev、product、qa、stage和默認的application五個配置文件
(2)加載配置文件時會先加載application.properties配置文件(這里一般存放一些公共配置),在該文件中配置要加載的環境的配置文件,這里有兩種配置方法。
例如要加載dev環境,可以在application.properties中這樣配置
spring.profiles.active=dev
或者使用@spring.profiles.active@,如下所示
spring.profiles.active=@spring.profiles.active@
如果使用這種方式則需要在pom.xml中添加以下內容,其中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>
當執行mvn clean package -P dev 命令對項目進行打包發布時,打出來的jar/war包中的配置文件中@spring.profiles.active@ 會被替換成 dev。
注意
@spring.profiles.active@
要與pom中的標簽<spring.profiles.active>
> 保持一致,否則會報錯。
配置文件的優先級排序(以哪個配置文件為準):
1、項目根目錄下的config目錄。【優先級最高】
2、項目根目錄。
3、classpath下的config目錄。
4、classpath目錄(新建項目時application.properties默認所在位置)。【優先級最低】
配置文件加載順序和優先級順序相反,優先級低的先加載,因為如果有重復的配置,先加載的配置文件會被覆蓋。
同一級目錄下,如果是application.yml
,application.properties
配置文件同時存在,會以application.properties配置文件為準,也就是說先加載.yml文件后加載.properties文件。
優先級順序:1->2->3->4->5。
文件加載順序:5->4->3->2->1。
關于“SpringBoot怎么加載多個配置文件實現dev、product多環境切換”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。