Spring Boot使用profile如何配置不同環(huán)境的配置文件
在springboot的開(kāi)發(fā)中,有時(shí)候我們會(huì)有不同的配置,例如日志打印,數(shù)據(jù)庫(kù)連接等,開(kāi)發(fā),測(cè)試,生產(chǎn)每個(gè)環(huán)境可能配置都不一致,還好,springboot支持通過(guò)不同的profile來(lái)配置不同環(huán)境的配置,下面就大致介紹一下yml配置文件跟properties配置文件怎么使用profile配置不同環(huán)境的配置文件...
先介紹一下開(kāi)發(fā)環(huán)境:
- jdk版本是1.8
- springboot的版本是1.4.1
- 開(kāi)發(fā)工具為 intellij idea
我們先來(lái)介紹,使用一個(gè)yml文件,通過(guò)不同的profile來(lái)配置屬性文件:
1.首先,我們先創(chuàng)建一個(gè)名為 application.yml的屬性文件,如下:
![]()
2.然后打開(kāi)文件,輸入一下內(nèi)容:
#查看springboot開(kāi)啟了哪些配置 debug: false spring: profiles: active: dev --- #開(kāi)發(fā)環(huán)境配置 spring: profiles: dev server: port: 8080 --- #測(cè)試環(huán)境配置 spring: profiles: test server: port: 8081 --- #生產(chǎn)環(huán)境配置 spring: profiles: pro server: port: 8082
非常簡(jiǎn)單的配置,application.yml文件分為四部分,使用一組(---)來(lái)作為分隔符,第一部分,為通用配置部分,表示三個(gè)環(huán)境都通用的屬性,spring.profiles.active稍后解釋.
后面三段分別為,開(kāi)發(fā),測(cè)試,生產(chǎn),都用spring.profiles指定了一個(gè)值(開(kāi)發(fā)為dev,測(cè)試為test,生產(chǎn)為pro),這個(gè)值表示該段配置應(yīng)該用在哪個(gè)profile里面,
PS:一定要注意!!一定要注意!!一定要注意!!所有屬性后面跟的value要跟 ":" 隔開(kāi)一個(gè)空格,否則,配置無(wú)效!!!配置無(wú)效!!!配置無(wú)效!!!我當(dāng)初就掉進(jìn)來(lái)了,在此告知各位,別跟我一樣掉進(jìn)來(lái)!!!
如果,我們是本地啟動(dòng),在通用配置里面,可以設(shè)置調(diào)用哪個(gè)環(huán)境的profile,也就是第一段的spring.profiles.active=XXX;
上面的XXX是每個(gè)環(huán)境的 spring.profiles對(duì)應(yīng)的value,通過(guò)這個(gè),可以控制本地啟動(dòng)調(diào)用哪個(gè)環(huán)境的配置文件,例如:
spring:
profiles:
active: dev
加載的,就是開(kāi)發(fā)環(huán)境的屬性,如果dev換成test,則會(huì)加載測(cè)試環(huán)境的屬性,生產(chǎn)也是如此,
PS:如果spring.profiles.active沒(méi)有指定值,那么只會(huì)使用沒(méi)有指定spring.profiles文件的值,也就是只會(huì)加載通用的配置
如果是部署到服務(wù)器的話,我們正常打成jar包,發(fā)布是時(shí)候,采用:
--spring.profiles.active=test或者pro 來(lái)控制加載哪個(gè)環(huán)境的配置,完整命令如下:
java -jar xxxxx.jar --spring.profiles.active=test 表示加載測(cè)試環(huán)境的配置
java -jar xxxxx.jar --spring.profiles.active=pro 表示加載生產(chǎn)環(huán)境的配置
上面介紹完了,我們本地啟動(dòng)一下,先將spring.profiles.active的值設(shè)置為dev,看看日志打印結(jié)果:
![]()
通過(guò)日志分析,可以看到,打印了profiles的值為dev,下面看看打印的端口號(hào)
![]()
發(fā)現(xiàn),端口號(hào)是8080說(shuō)明加載了dev的配置;
下面我們來(lái)試試把a(bǔ)ctive的值換成test,重啟看看:
![]()
active變成了test,
![]()
端口變?yōu)榱?081,說(shuō)明,加載的是test的配置,
接下來(lái),就是使用多個(gè)yml配置文件進(jìn)行配置屬性文件:
如果是使用多個(gè)yml來(lái)配置屬性,我們則可以這么使用,通過(guò)與配置文件相同的明明規(guī)范,創(chuàng)建application-{profile}.yml文件,將于環(huán)境無(wú)關(guān)的屬性,放置到application.yml文件里面,可以通過(guò)這種形式來(lái)配置多個(gè)環(huán)境的屬性文件,在application.yml文件里面指定spring.profiles.active=profiles的值,來(lái)加載不同環(huán)境的配置,如果不指定,則默認(rèn)只使用application.yml屬性文件,不會(huì)加載其他的profiles的配置
使用properties配置多個(gè)環(huán)境配置文件
如果使用application.properties進(jìn)行多個(gè)環(huán)境的配置,原理跟使用多個(gè)yml配置文件一致,也是通過(guò)application-{profile}.properties來(lái)控制加載哪個(gè)環(huán)境的配置,將于環(huán)境無(wú)關(guān)的屬性,放置到application.properties文件里面,通過(guò)spring.profiles.active=profiles的值,加載不同環(huán)境的配置,如果不指定,則默認(rèn)加載application.properties的配置,不會(huì)加載帶有profile的配置
總結(jié)
以上所述是小編給大家介紹的Spring Boot使用profile如何配置不同環(huán)境的配置文件,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
解決Elasticsearch因jdk版本問(wèn)題啟動(dòng)失敗的問(wèn)題
這篇文章主要介紹了解決Elasticsearch因jdk版本問(wèn)題啟動(dòng)失敗的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
Java初學(xué)者問(wèn)題圖解(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)
本文通過(guò)圖文并茂的形式給大家介紹了java初學(xué)者問(wèn)題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2017-04-04
Java 實(shí)現(xiàn)漢字轉(zhuǎn)換為拼音的實(shí)例
這篇文章主要介紹了Java 實(shí)現(xiàn)漢字轉(zhuǎn)換為拼音的實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-12-12
Java的外部類(lèi)為什么不能使用private和protected進(jìn)行修飾的講解
今天小編就為大家分享一篇關(guān)于Java的外部類(lèi)為什么不能使用private和protected進(jìn)行修飾的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04
springboot 高版本后繼續(xù)使用log4j的完美解決方法
這篇文章主要介紹了 springboot 高版本后繼續(xù)使用log4j的解決方法,需要的朋友可以參考下2017-12-12
Java如何基于okhttp請(qǐng)求SSE接口流式返回詳解
對(duì)于流式返回,Spring Boot提供了兩種不同的方式,下面這篇文章主要給大家介紹了關(guān)于Java如何基于okhttp請(qǐng)求SSE接口流式返回的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03

