欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

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

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

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

請(qǐng)?zhí)砑訄D片描述

(2)加載配置文件時(shí)會(huì)先加載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標(biāo)簽來指定項(xiàng)目啟動(dòng)時(shí)默認(rèn)加載的配置文件。

<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 命令對(duì)項(xiàng)目進(jìn)行打包發(fā)布時(shí),打出來的jar/war包中的配置文件中@spring.profiles.active@ 會(huì)被替換成 dev。

注意@spring.profiles.active@ 要與pom中的標(biāo)簽 <spring.profiles.active>> 保持一致,否則會(huì)報(bào)錯(cuò)。

請(qǐng)?zhí)砑訄D片描述

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

配置文件的優(yōu)先級(jí)排序(以哪個(gè)配置文件為準(zhǔn)):

1、項(xiàng)目根目錄下的config目錄?!緝?yōu)先級(jí)最高】
2、項(xiàng)目根目錄。
3、classpath下的config目錄。
4、classpath目錄(新建項(xiàng)目時(shí)application.properties默認(rèn)所在位置)?!緝?yōu)先級(jí)最低】

配置文件加載順序和優(yōu)先級(jí)順序相反,優(yōu)先級(jí)低的先加載,因?yàn)槿绻兄貜?fù)的配置,先加載的配置文件會(huì)被覆蓋。

同一級(jí)目錄下,如果是application.yml,application.properties配置文件同時(shí)存在,會(huì)以application.properties配置文件為準(zhǔn),也就是說先加載.yml文件后加載.properties文件。

請(qǐng)?zhí)砑訄D片描述

優(yōu)先級(jí)順序:1->2->3->4->5。

文件加載順序:5->4->3->2->1。

到此這篇關(guān)于SpringBoot加載多個(gè)配置文件實(shí)現(xiàn)dev、product多環(huán)境切換的文章就介紹到這了,更多相關(guān)SpringBoot加載多個(gè)配置文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nett中的心跳機(jī)制與斷線重連詳解

    Nett中的心跳機(jī)制與斷線重連詳解

    這篇文章主要介紹了Nett中的心跳機(jī)制與斷線重連詳解,我們以客戶端發(fā)送心跳為例,平時(shí)我們的心跳實(shí)現(xiàn)方式可能是搞個(gè)定時(shí)器,定時(shí)發(fā)送是吧,但是在Netty中卻不一樣,心跳被稱為空閑檢測(cè),需要的朋友可以參考下
    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)聽方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 詳解Vue響應(yīng)式的部分實(shí)現(xiàn)

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

    響應(yīng)式,簡(jiǎn)單來說當(dāng)數(shù)據(jù)發(fā)生變化時(shí),對(duì)數(shù)據(jù)有依賴的代碼會(huì)重新執(zhí)行。這篇文章主要為大家介紹了Vue中響應(yīng)式的部分實(shí)現(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)點(diǎn)及工作原理解析,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • java 一鍵部署 jar 包和 war 包

    java 一鍵部署 jar 包和 war 包

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

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

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

    Java如何把map分割成多個(gè)map

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

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

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

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

    MyBatis是一個(gè)優(yōu)秀的持久層框架,它對(duì)JDBC的操作數(shù)據(jù)庫的過程進(jìn)行封裝,MyBatisPlus (簡(jiǎn)稱 MP)是一個(gè) MyBatis的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開發(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)容,希望對(duì)你有所幫助
    2022-04-04

最新評(píng)論