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