SpringBoot?Profile多環(huán)境配置方式
Profile多環(huán)境配置
我們?cè)陂_(kāi)發(fā)項(xiàng)目時(shí),通常同一套程序會(huì)被發(fā)布到幾個(gè)不同的環(huán)境,比如:開(kāi)發(fā)、測(cè)試、生產(chǎn)等。其中每個(gè)環(huán)境的數(shù)據(jù)庫(kù)地址、redis地 址、服務(wù)器端口等等配置都會(huì)不同,如果在為不同環(huán)境打包時(shí)都要頻繁修改配置文件的話,那必將是個(gè)非常繁瑣且容易發(fā)生錯(cuò)誤的事。
對(duì)于多環(huán)境的配置,各種項(xiàng)目構(gòu)建工具或是框架的基本思路是一致的,通過(guò)配置多份不同環(huán)境的配置文件,再通過(guò)打包命令指定需要打包的內(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:開(kāi)發(fā)環(huán)境
- application-test.properties:測(cè)試環(huán)境
- application-prod.properties:生產(chǎn)環(huán)境
至于哪個(gè)具體的配置文件會(huì)被加載,需要在application.properties文件中通過(guò)spring.profiles.active屬性來(lái)設(shè)置,其值對(duì)應(yīng){profile} 值。 如:spring.profiles.active=test就會(huì)加載application-test.properties配置文件內(nèi)容。
① application.properties:
# 在application.properties文件中通過(guò)spring.profiles.active屬性來(lái)設(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è)試類(lèi):
@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.問(wèn)題
開(kāi)發(fā)環(huán)境和真實(shí)的項(xiàng)目環(huán)境是不樣的
- 8080
- 80
2.為什么要使用profiles
在開(kāi)發(fā)中,一般有兩種環(huán)境
1,生產(chǎn)環(huán)境 [項(xiàng)目上線,客戶在使用中,就是生產(chǎn)環(huán)境]
2,開(kāi)發(fā)環(huán)境[就是開(kāi)發(fā)環(huán)境,不解釋]
- 有時(shí)候開(kāi)發(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:
- dev7,刪除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
#插入開(kāi)發(fā)配置文件
---
spring:
profiles: dev
server:
port: 8888
#插入生產(chǎn)的配置文件
---
spring:
profiles: pro
server:
port: 9999以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- SpringBoot 多Profile使用與切換方式
- SpringBoot中的Profile多環(huán)境配置方法
- SpringBoot中多環(huán)境配置和@Profile注解示例詳解
- SpringBoot?Profiles?多環(huán)境配置及切換
- SpringBoot配置Profile實(shí)現(xiàn)多環(huán)境支持
- springboot學(xué)習(xí)筆記之 profile多環(huán)境配置切換的實(shí)現(xiàn)方式
- 使用Spring boot 的profile功能實(shí)現(xiàn)多環(huán)境配置自動(dòng)切換
- SpringBoot多Profile配置的實(shí)現(xiàn)示例
相關(guān)文章
ZooKeeper開(kāi)發(fā)實(shí)際應(yīng)用案例實(shí)戰(zhàn)
這篇文章主要為大家介紹了ZooKeeper開(kāi)發(fā)的實(shí)際應(yīng)用案例實(shí)戰(zhàn),文中附含詳細(xì)開(kāi)發(fā)應(yīng)用源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-01-01
JAVA返回PDF文件流并進(jìn)行下載的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于JAVA返回PDF文件流并進(jìn)行下載的實(shí)現(xiàn)方法,PDF文件流下載是通過(guò)HTTP協(xié)議將服務(wù)器上的PDF文件以流的方式發(fā)送給客戶端,供客戶端保存到本地磁盤(pán)或直接在瀏覽器中打開(kāi),需要的朋友可以參考下2024-02-02
Sentinel實(shí)現(xiàn)動(dòng)態(tài)配置的集群流控的方法
這篇文章主要介紹了Sentinel實(shí)現(xiàn)動(dòng)態(tài)配置的集群流控,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
Spring Security 實(shí)現(xiàn)“記住我”功能及原理解析
這篇文章主要介紹了Spring Security 實(shí)現(xiàn)“記住我”功能及原理解析,需要的朋友可以參考下2020-05-05
MyBatis的xml中字符串類(lèi)型判空與非字符串類(lèi)型判空處理方式(最新整理)
本文給大家介紹MyBatis的xml中字符串類(lèi)型判空與非字符串類(lèi)型判空處理方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2025-08-08
詳解HTTP請(qǐng)求與響應(yīng)基礎(chǔ)及實(shí)例
這篇文章主要介紹了詳解HTTP請(qǐng)求與響應(yīng)基礎(chǔ)及實(shí)例的相關(guān)資料,這里對(duì)http的請(qǐng)求和響應(yīng)進(jìn)行詳細(xì)分析并附有實(shí)現(xiàn)實(shí)例,需要的朋友可以參考下2017-07-07

