Spring Boot使用profile如何配置不同環(huán)境的配置文件
在springboot的開發(fā)中,有時(shí)候我們會(huì)有不同的配置,例如日志打印,數(shù)據(jù)庫連接等,開發(fā),測(cè)試,生產(chǎn)每個(gè)環(huán)境可能配置都不一致,還好,springboot支持通過不同的profile來配置不同環(huán)境的配置,下面就大致介紹一下yml配置文件跟properties配置文件怎么使用profile配置不同環(huán)境的配置文件...
先介紹一下開發(fā)環(huán)境:
- jdk版本是1.8
- springboot的版本是1.4.1
- 開發(fā)工具為 intellij idea
我們先來介紹,使用一個(gè)yml文件,通過不同的profile來配置屬性文件:
1.首先,我們先創(chuàng)建一個(gè)名為 application.yml的屬性文件,如下:
2.然后打開文件,輸入一下內(nèi)容:
#查看springboot開啟了哪些配置 debug: false spring: profiles: active: dev --- #開發(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文件分為四部分,使用一組(---)來作為分隔符,第一部分,為通用配置部分,表示三個(gè)環(huán)境都通用的屬性,spring.profiles.active稍后解釋.
后面三段分別為,開發(fā),測(cè)試,生產(chǎn),都用spring.profiles指定了一個(gè)值(開發(fā)為dev,測(cè)試為test,生產(chǎn)為pro),這個(gè)值表示該段配置應(yīng)該用在哪個(gè)profile里面,
PS:一定要注意!!一定要注意!!一定要注意!!所有屬性后面跟的value要跟 ":" 隔開一個(gè)空格,否則,配置無效!!!配置無效!!!配置無效!!!我當(dāng)初就掉進(jìn)來了,在此告知各位,別跟我一樣掉進(jìn)來!!!
如果,我們是本地啟動(dòng),在通用配置里面,可以設(shè)置調(diào)用哪個(gè)環(huán)境的profile,也就是第一段的spring.profiles.active=XXX;
上面的XXX是每個(gè)環(huán)境的 spring.profiles對(duì)應(yīng)的value,通過這個(gè),可以控制本地啟動(dòng)調(diào)用哪個(gè)環(huán)境的配置文件,例如:
spring:
profiles:
active: dev
加載的,就是開發(fā)環(huán)境的屬性,如果dev換成test,則會(huì)加載測(cè)試環(huán)境的屬性,生產(chǎn)也是如此,
PS:如果spring.profiles.active沒有指定值,那么只會(huì)使用沒有指定spring.profiles文件的值,也就是只會(huì)加載通用的配置
如果是部署到服務(wù)器的話,我們正常打成jar包,發(fā)布是時(shí)候,采用:
--spring.profiles.active=test或者pro 來控制加載哪個(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é)果:
通過日志分析,可以看到,打印了profiles的值為dev,下面看看打印的端口號(hào)
發(fā)現(xiàn),端口號(hào)是8080說明加載了dev的配置;
下面我們來試試把a(bǔ)ctive的值換成test,重啟看看:
active變成了test,
端口變?yōu)榱?081,說明,加載的是test的配置,
接下來,就是使用多個(gè)yml配置文件進(jìn)行配置屬性文件:
如果是使用多個(gè)yml來配置屬性,我們則可以這么使用,通過與配置文件相同的明明規(guī)范,創(chuàng)建application-{profile}.yml文件,將于環(huán)境無關(guān)的屬性,放置到application.yml文件里面,可以通過這種形式來配置多個(gè)環(huán)境的屬性文件,在application.yml文件里面指定spring.profiles.active=profiles的值,來加載不同環(huán)境的配置,如果不指定,則默認(rèn)只使用application.yml屬性文件,不會(huì)加載其他的profiles的配置
使用properties配置多個(gè)環(huán)境配置文件
如果使用application.properties進(jìn)行多個(gè)環(huán)境的配置,原理跟使用多個(gè)yml配置文件一致,也是通過application-{profile}.properties來控制加載哪個(gè)環(huán)境的配置,將于環(huán)境無關(guān)的屬性,放置到application.properties文件里面,通過spring.profiles.active=profiles的值,加載不同環(huán)境的配置,如果不指定,則默認(rèn)加載application.properties的配置,不會(huì)加載帶有profile的配置
總結(jié)
以上所述是小編給大家介紹的Spring Boot使用profile如何配置不同環(huán)境的配置文件,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
MyBatis解決Update動(dòng)態(tài)SQL逗號(hào)的問題
這篇文章主要介紹了MyBatis解決Update動(dòng)態(tài)SQL逗號(hào)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01Spring @Valid @Validated實(shí)現(xiàn)驗(yàn)證
這篇文章主要介紹了Spring @Valid @Validated實(shí)現(xiàn)驗(yàn)證,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01調(diào)用java.lang.Runtime.exec的正確姿勢(shì)分享
這篇文章主要介紹了調(diào)用java.lang.Runtime.exec的正確姿勢(shì),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11探討:使用httpClient在客戶端與服務(wù)器端傳輸對(duì)象參數(shù)的詳解
本篇文章是對(duì)使用httpClient在客戶端與服務(wù)器端傳輸對(duì)象參數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06關(guān)于Redis鍵值出現(xiàn)\xac\xed\x00\x05t\x00&錯(cuò)誤的解決方法
這篇文章主要介紹了關(guān)于Redis鍵值出現(xiàn)\xac\xed\x00\x05t\x00&的解決方法,出現(xiàn)該問題的原因是, redis template向redis存放使用java對(duì)象序列化的值,序列化方式和string的一般方式不同,需要的朋友可以參考下2023-08-08解決SpringBoot使用@Value獲取不到y(tǒng)aml中配置值的問題
在最近的開發(fā)中遇到一個(gè)問題,使用@Value獲取yml文件中配置的屬性時(shí)始終獲取不到值,所以本文給大家詳細(xì)介紹了SpringBoot使用@Value獲取不到y(tǒng)aml中值的問題分析及解決方法,需要的朋友可以參考下2024-01-01詳解Java動(dòng)態(tài)代理的實(shí)現(xiàn)及應(yīng)用
這篇文章主要介紹了詳解Java動(dòng)態(tài)代理的實(shí)現(xiàn)及應(yīng)用的相關(guān)資料,希望通過本文大家能理解掌握J(rèn)ava動(dòng)態(tài)代理的使用方法,需要的朋友可以參考下2017-09-09