SpringBoot?Profile多環(huán)境配置方式
Profile多環(huán)境配置
我們?cè)陂_發(fā)項(xiàng)目時(shí),通常同一套程序會(huì)被發(fā)布到幾個(gè)不同的環(huán)境,比如:開發(fā)、測(cè)試、生產(chǎn)等。其中每個(gè)環(huán)境的數(shù)據(jù)庫地址、redis地 址、服務(wù)器端口等等配置都會(huì)不同,如果在為不同環(huán)境打包時(shí)都要頻繁修改配置文件的話,那必將是個(gè)非常繁瑣且容易發(fā)生錯(cuò)誤的事。
對(duì)于多環(huán)境的配置,各種項(xiàng)目構(gòu)建工具或是框架的基本思路是一致的,通過配置多份不同環(huán)境的配置文件,再通過打包命令指定需要打包的內(nèi)容之后進(jìn)行區(qū)分打包,而Spring Boot 就更簡(jiǎn)單了,打好包后,只需在不同的環(huán)境下啟動(dòng)時(shí)候指定讀取的配置文件就可以了。
在Spring Boot中多環(huán)境配置文件名需要滿足application-{profile}.properties的格式,其中{profile}對(duì)應(yīng)你的環(huán)境標(biāo)識(shí),比如:
- application-dev.properties:開發(fā)環(huán)境
- application-test.properties:測(cè)試環(huán)境
- application-prod.properties:生產(chǎn)環(huán)境
至于哪個(gè)具體的配置文件會(huì)被加載,需要在application.properties文件中通過spring.profiles.active屬性來設(shè)置,其值對(duì)應(yīng){profile} 值。 如:spring.profiles.active=test就會(huì)加載application-test.properties配置文件內(nèi)容。
① application.properties:
# 在application.properties文件中通過spring.profiles.active屬性來設(shè)置哪個(gè)配置文件會(huì)被加載 spring.profiles.active=dev
② application-dev.properties:
server.port=8081branch=dev
③ application-prod.properties:
server.port=8083branch=prod
④ application-test.properties:
server.port=8082branch=test
⑤ 測(cè)試類:
@Controller @RequestMapping("/test") public class TestController { @Value("${branch}") private String branch; @ResponseBody @GetMapping("/branch") public String test(){ return branch; } }
⑥ 如果我們直接啟動(dòng)項(xiàng)目,那么啟動(dòng)的就是dev環(huán)境,因?yàn)槲覀冊(cè)赼pplication.properties中配置的是dev
⑦ 打包項(xiàng)目(clean,install),打好包后,啟動(dòng)時(shí)指定讀取的配置文件
java -jar springboot-profile-0.0.1-SNAPSHOT.jar --spring.profiles.active=test
Profile配置詳解
1.問題
開發(fā)環(huán)境和真實(shí)的項(xiàng)目環(huán)境是不樣的
- 8080
- 80
2.為什么要使用profiles
在開發(fā)中,一般有兩種環(huán)境
1,生產(chǎn)環(huán)境 [項(xiàng)目上線,客戶在使用中,就是生產(chǎn)環(huán)境]
2,開發(fā)環(huán)境[就是開發(fā)環(huán)境,不解釋]
- 有時(shí)候開發(fā)環(huán)境和生產(chǎn)環(huán)境的配置方法是不一樣的,那么如何快速的切換呢,這里就要使用profiles文件
3,創(chuàng)建application-dev.properties
server.port=8888
4,創(chuàng)建application-pro.properties
server.port=9999
5,配置application.properties
# spring.profiles.active=pro
6,配置application.yml[和第5點(diǎn)任選一個(gè)]
#配置激活哪一個(gè)配置文件 spring: profiles: active: - dev
7,刪除application.yml/.properties文件如何運(yùn)行
- 右鍵運(yùn)行–>Run Configruations
- 進(jìn)入設(shè)置運(yùn)行時(shí)的虛擬機(jī)參數(shù)
-Dspring.profiles.active=pro
8,去掉application.properties的jar包運(yùn)行方式
9,yml文件的多配置塊的集成切換
#主配置,啟動(dòng)哪個(gè)配置文件 spring: profiles: active: - dev #插入開發(fā)配置文件 --- spring: profiles: dev server: port: 8888 #插入生產(chǎn)的配置文件 --- spring: profiles: pro server: port: 9999
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(52)
下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望可以幫到你2021-08-08java中應(yīng)用Stack進(jìn)行算術(shù)運(yùn)算的操作
這篇文章主要介紹了java中應(yīng)用Stack進(jìn)行算術(shù)運(yùn)算的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03springboot+hutool批量生成二維碼壓縮導(dǎo)出功能
這篇文章主要介紹了springboot+hutool批量生成二維碼壓縮導(dǎo)出功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10淺談Java數(shù)組的一些使用方法及堆棧存儲(chǔ)
下面小編就為大家?guī)硪黄獪\談Java數(shù)組的一些使用方法及堆棧存儲(chǔ)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07maven中profile動(dòng)態(tài)打包不同環(huán)境配置文件的實(shí)現(xiàn)
開發(fā)項(xiàng)目時(shí)會(huì)遇到這個(gè)問題:開發(fā)環(huán)境,測(cè)試環(huán)境,生產(chǎn)環(huán)境的配置文件不同, 打包時(shí)經(jīng)常要手動(dòng)更改配置文件,本文就來介紹一下maven中profile動(dòng)態(tài)打包不同環(huán)境配置文件的實(shí)現(xiàn),感興趣的可以了解一下2023-10-10maven中resource配置的實(shí)現(xiàn)示例
我們?cè)谑褂肕aven組件來構(gòu)建項(xiàng)目的時(shí)候,通常將配置文件放在資源文件目錄下,本文主要介紹了maven中resource配置的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09Spring6.x對(duì)調(diào)度和異步執(zhí)行的注解支持示例詳解
這篇文章主要為大家介紹了Spring6.x對(duì)調(diào)度和異步執(zhí)行的注解支持示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11java簡(jiǎn)單實(shí)現(xiàn)斗地主發(fā)牌功能
這篇文章主要為大家詳細(xì)介紹了java簡(jiǎn)單實(shí)現(xiàn)斗地主發(fā)牌功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06