您好,登錄后才能下訂單哦!
這篇文章主要介紹了Spring Boot中怎么使用一個yml文件通過不同的profile來配置屬性文件,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
在springboot的開發中,有時候我們會有不同的配置,例如日志打印,數據庫連接等,開發,測試,生產每個環境可能配置都不一致,還好,springboot支持通過不同的profile來配置不同環境的配置,下面就大致介紹一下yml配置文件跟properties配置文件怎么使用profile配置不同環境的配置文件...
先介紹一下開發環境:
jdk版本是1.8
springboot的版本是1.4.1
開發工具為 intellij idea
我們先來介紹,使用一個yml文件,通過不同的profile來配置屬性文件:
1.首先,我們先創建一個名為 application.yml的屬性文件,如下:
2.然后打開文件,輸入一下內容:
#查看springboot開啟了哪些配置 debug: false spring: profiles: active: dev --- #開發環境配置 spring: profiles: dev server: port: 8080 --- #測試環境配置 spring: profiles: test server: port: 8081 --- #生產環境配置 spring: profiles: pro server: port: 8082
非常簡單的配置,application.yml文件分為四部分,使用一組(---)來作為分隔符,第一部分,為通用配置部分,表示三個環境都通用的屬性,spring.profiles.active稍后解釋.
后面三段分別為,開發,測試,生產,都用spring.profiles指定了一個值(開發為dev,測試為test,生產為pro),這個值表示該段配置應該用在哪個profile里面,
PS:一定要注意!!一定要注意!!一定要注意!!所有屬性后面跟的value要跟 ":" 隔開一個空格,否則,配置無效!!!配置無效!!!配置無效!!!我當初就掉進來了,在此告知各位,別跟我一樣掉進來!!!
如果,我們是本地啟動,在通用配置里面,可以設置調用哪個環境的profile,也就是第一段的spring.profiles.active=XXX;
上面的XXX是每個環境的 spring.profiles對應的value,通過這個,可以控制本地啟動調用哪個環境的配置文件,例如:
spring:
profiles:
active: dev
加載的,就是開發環境的屬性,如果dev換成test,則會加載測試環境的屬性,生產也是如此,
PS:如果spring.profiles.active沒有指定值,那么只會使用沒有指定spring.profiles文件的值,也就是只會加載通用的配置
如果是部署到服務器的話,我們正常打成jar包,發布是時候,采用:
--spring.profiles.active=test或者pro 來控制加載哪個環境的配置,完整命令如下:
java -jar xxxxx.jar --spring.profiles.active=test 表示加載測試環境的配置
java -jar xxxxx.jar --spring.profiles.active=pro 表示加載生產環境的配置
上面介紹完了,我們本地啟動一下,先將spring.profiles.active的值設置為dev,看看日志打印結果:
通過日志分析,可以看到,打印了profiles的值為dev,下面看看打印的端口號
發現,端口號是8080說明加載了dev的配置;
下面我們來試試把active的值換成test,重啟看看:
active變成了test,
端口變為了8081,說明,加載的是test的配置,
接下來,就是使用多個yml配置文件進行配置屬性文件:
如果是使用多個yml來配置屬性,我們則可以這么使用,通過與配置文件相同的明明規范,創建application-{profile}.yml文件,將于環境無關的屬性,放置到application.yml文件里面,可以通過這種形式來配置多個環境的屬性文件,在application.yml文件里面指定spring.profiles.active=profiles的值,來加載不同環境的配置,如果不指定,則默認只使用application.yml屬性文件,不會加載其他的profiles的配置
使用properties配置多個環境配置文件
如果使用application.properties進行多個環境的配置,原理跟使用多個yml配置文件一致,也是通過application-{profile}.properties來控制加載哪個環境的配置,將于環境無關的屬性,放置到application.properties文件里面,通過spring.profiles.active=profiles的值,加載不同環境的配置,如果不指定,則默認加載application.properties的配置,不會加載帶有profile的配置
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Spring Boot中怎么使用一個yml文件通過不同的profile來配置屬性文件”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。