亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBoot加載多個配置文件實現(xiàn)dev、product多環(huán)境切換的方法

 更新時間:2023年03月28日 09:11:06   作者:lans_g  
這篇文章主要介紹了SpringBoot加載多個配置文件實現(xiàn)dev、product多環(huán)境切換,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

前言

在公司真正的開發(fā)和生產(chǎn)中,同一套程序會被部署到幾個不同的環(huán)境,比如:開發(fā)、測試、生產(chǎn)等。其中每個環(huán)境的數(shù)據(jù)庫地址、服務(wù)器端口等等配置都會不同,這樣通過多個配置文件就做到了隔離,多個環(huán)境之間不會相互影響。但是這么多配置文件,項目啟動時SpringBoot如何確定加載哪一個呢?

1.SpringBoot中實現(xiàn)多環(huán)境切換

在SpringBoot中,除了application.properties,我們新建的其他配置文件的文件名需要滿足application-{profile}.properties的格式,其中{profile}對應(yīng)你的環(huán)境標識(不一定是.properties文件,也可以是.yml)其對應(yīng)的{profile}值是開發(fā)者自定義的(如dev,product),在項目啟動的時候,只需要添加對應(yīng)的參數(shù),springboot就會去讀取該配置文件了。具體profile的配置在application.properties文件中通過spring.profiles.active屬性來設(shè)置。接下來我們以一個例子來說明

(1)首先這里創(chuàng)建了dev、product、qa、stage和默認的application五個配置文件

請?zhí)砑訄D片描述

(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>

當(dāng)執(zhí)行mvn clean package -P dev 命令對項目進行打包發(fā)布時,打出來的jar/war包中的配置文件中@spring.profiles.active@ 會被替換成 dev。

注意@spring.profiles.active@ 要與pom中的標簽 <spring.profiles.active>> 保持一致,否則會報錯。

請?zhí)砑訄D片描述

2.SpringBoot中配置文件加載順序

配置文件的優(yōu)先級排序(以哪個配置文件為準):

1、項目根目錄下的config目錄。【優(yōu)先級最高】
2、項目根目錄。
3、classpath下的config目錄。
4、classpath目錄(新建項目時application.properties默認所在位置)?!緝?yōu)先級最低】

配置文件加載順序和優(yōu)先級順序相反,優(yōu)先級低的先加載,因為如果有重復(fù)的配置,先加載的配置文件會被覆蓋。

同一級目錄下,如果是application.yml,application.properties配置文件同時存在,會以application.properties配置文件為準,也就是說先加載.yml文件后加載.properties文件。

請?zhí)砑訄D片描述

優(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)文章

  • Nett中的心跳機制與斷線重連詳解

    Nett中的心跳機制與斷線重連詳解

    這篇文章主要介紹了Nett中的心跳機制與斷線重連詳解,我們以客戶端發(fā)送心跳為例,平時我們的心跳實現(xiàn)方式可能是搞個定時器,定時發(fā)送是吧,但是在Netty中卻不一樣,心跳被稱為空閑檢測,需要的朋友可以參考下
    2023-12-12
  • Spring事件發(fā)布監(jiān)聽,順序監(jiān)聽,異步監(jiān)聽方式

    Spring事件發(fā)布監(jiān)聽,順序監(jiān)聽,異步監(jiān)聽方式

    這篇文章主要介紹了Spring事件發(fā)布監(jiān)聽,順序監(jiān)聽,異步監(jiān)聽方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 詳解Vue響應(yīng)式的部分實現(xiàn)

    詳解Vue響應(yīng)式的部分實現(xiàn)

    響應(yīng)式,簡單來說當(dāng)數(shù)據(jù)發(fā)生變化時,對數(shù)據(jù)有依賴的代碼會重新執(zhí)行。這篇文章主要為大家介紹了Vue中響應(yīng)式的部分實現(xiàn),感興趣的可以了解一下
    2022-12-12
  • 一文學(xué)習(xí)Java NIO的ByteBuffer工作原理

    一文學(xué)習(xí)Java NIO的ByteBuffer工作原理

    很多網(wǎng)友說JDK又在寫B(tài)ug!下面通過通過本文學(xué)習(xí)下為何Java NIO的ByteBuffer這么垃圾,涉及到ByteBuf API 的優(yōu)點及工作原理解析,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • java 一鍵部署 jar 包和 war 包

    java 一鍵部署 jar 包和 war 包

    這篇文章主要介紹了Java創(chuàng)建打包命令、創(chuàng)建啟動文件等功能實現(xiàn)Java一鍵部署 jar 包和 war 包,感興趣的下伙伴可以參考下文
    2021-09-09
  • 解決idea無法導(dǎo)入識別本地類的問題

    解決idea無法導(dǎo)入識別本地類的問題

    今天做實驗不知道按了哪里不能導(dǎo)入識別本地的類,只有jar包的類,百度搜索也沒有找到合理的解決方案,經(jīng)過朋友援助問題根源找到,下面小編把解決方法分享給大家,需要的朋友參考下吧
    2021-08-08
  • Java如何把map分割成多個map

    Java如何把map分割成多個map

    這篇文章主要介紹了Java如何把map分割成多個map,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-08-08
  • IDEA 中使用 ECJ 編譯出現(xiàn) java.lang.IllegalArgumentException的錯誤問題

    IDEA 中使用 ECJ 編譯出現(xiàn) java.lang.IllegalArgumentException的錯誤問題

    這篇文章主要介紹了IDEA 中使用 ECJ 編譯出現(xiàn) java.lang.IllegalArgumentException問題 ,本文內(nèi)容簡短給大家介紹的好,需要的朋友可以參考下
    2020-05-05
  • 在Springboot中Mybatis與Mybatis-plus的區(qū)別詳解

    在Springboot中Mybatis與Mybatis-plus的區(qū)別詳解

    MyBatis是一個優(yōu)秀的持久層框架,它對JDBC的操作數(shù)據(jù)庫的過程進行封裝,MyBatisPlus (簡稱 MP)是一個 MyBatis的增強工具,在 MyBatis 的基礎(chǔ)上只做增強不做改變,為簡化開發(fā)、提高效率而生,本文將給大家介紹了在Springboot中Mybatis與Mybatis-plus的區(qū)別
    2023-12-12
  • 深入探究Java線程的創(chuàng)建與構(gòu)造方法

    深入探究Java線程的創(chuàng)建與構(gòu)造方法

    這篇文章主要給大家分享的是java線程的創(chuàng)建以及構(gòu)造方法,想了解具體方式的小伙伴可以參考下面文章內(nèi)容,希望對你有所幫助
    2022-04-04

最新評論