最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot 多環(huán)境配置Maven Profile vs 啟動參數(shù)注入深入解析

 更新時間:2025年12月11日 08:49:24   作者:tlnshuju  
本文介紹了在Java項目開發(fā)和部署中使用多環(huán)境配置的方法,比較了兩種主要方式:MavenProfile方式和啟動參數(shù)方式,結(jié)合實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧

一、背景說明

在項目開發(fā)和部署過程中,我們通常會維護多套配置文件:

  • 開發(fā)環(huán)境(dev):打印調(diào)試日志、使用本地數(shù)據(jù)庫;
  • 測試環(huán)境(test):連接測試庫、關閉控制臺輸出;
  • 生產(chǎn)環(huán)境(prod):追求性能、關閉 debug、連接生產(chǎn)數(shù)據(jù)庫。

Spring Boot 天生支持多環(huán)境配置,但不同團隊在使用上有兩種主要方式:

  • Maven Profile 方式(打包階段固定環(huán)境)
  • Spring Profile 啟動參數(shù)方式(運行時動態(tài)選擇)

這兩者目標一致但理念不同

  • Maven Profile 更偏向 構建時環(huán)境固化。
  • Spring Profile 更偏向 運行時靈活切換。

?? 二、核心區(qū)別一覽表

對比維度Maven Profile(構建時)啟動參數(shù)注入(運行時)
配置切換時機打包階段確定啟動階段動態(tài)指定
構建產(chǎn)物每個環(huán)境一個 jar一個通用 jar
命令方式mvn clean package -Pprodjava -jar app.jar --spring.profiles.active=prod
配置文件數(shù)量每個環(huán)境一個 jar 內(nèi)部配置不同所有配置文件打包進一個 jar
修改環(huán)境成本高(需重新打包)低(重啟命令即可)
CI/CD 兼容度一般極佳
本地開發(fā)體驗稍繁瑣方便(命令切換)
適用部署場景傳統(tǒng)服務器、手動運維Docker、K8s、Jenkins 等現(xiàn)代環(huán)境
企業(yè)使用比例(經(jīng)驗值)約30%約70%(主流)

三、方案一:Maven Profile 多環(huán)境打包

1. 原理簡介

Maven 的 <profiles> 標簽允許在 打包階段 注入不同屬性值。
結(jié)合 Spring Boot 的占位符替換機制(@spring.profiles.active@),
可以讓打出來的 jar 在內(nèi)部就寫死對應環(huán)境。

這種方式的核心理念是:

“一個環(huán)境,一個包” —— 打包即部署。

2. pom.xml 配置示例

<profiles>
  <profile>
  <id>dev</id>
    <activation>
    <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
    <spring.profiles.active>dev</spring.profiles.active>
    </properties>
  </profile>
  <profile>
  <id>test</id>
    <properties>
    <spring.profiles.active>test</spring.profiles.active>
    </properties>
  </profile>
  <profile>
  <id>prod</id>
    <properties>
    <spring.profiles.active>prod</spring.profiles.active>
    </properties>
  </profile>
</profiles>

3. application.yml

spring:
profiles:
active: @spring.profiles.active@

打包時執(zhí)行:

mvn clean package -Pprod

將生成的配置內(nèi)容:

spring:
profiles:
active: prod

?? 4. 打包命令

mvn clean package -Pdev
mvn clean package -Ptest
mvn clean package -Pprod

? 四、方案二:啟動參數(shù)注入(推薦)

1. 原理簡介

Spring Boot 在運行時根據(jù) spring.profiles.active 參數(shù)加載對應配置文件。
這種方式無需重新打包,只要調(diào)整命令即可切換環(huán)境。

“一個包,多環(huán)境復用”。

? 2. 配置文件結(jié)構

src/main/resources/
├── application.yml
├── application-dev.yml
├── application-test.yml
└── application-prod.yml

3. 啟動命令示例

java -jar app.jar --spring.profiles.active=dev
java -jar app.jar --spring.profiles.active=test
java -jar app.jar --spring.profiles.active=prod

4. 環(huán)境變量方式(生產(chǎn)推薦)

export SPRING_PROFILES_ACTIVE=prod
java -jar app.jar

Spring Boot 自動讀取環(huán)境變量配置。

五、選擇建議

場景推薦方案理由
開發(fā)環(huán)境啟動參數(shù)注入切換快速
測試環(huán)境啟動參數(shù)注入無需重打包
生產(chǎn)環(huán)境環(huán)境變量或 Maven Profile穩(wěn)定可控
Docker/K8s 部署啟動參數(shù)注入最佳實踐

六、混合寫法(兼容兩者)

spring:
profiles:
active: @spring.profiles.active@

啟動命令可覆蓋:

java -jar app.jar --spring.profiles.active=prod

? 七、總結(jié)

Maven Profile 是“打包時選環(huán)境”,Spring Profile 是“運行時選環(huán)境”。在現(xiàn)代 DevOps 或容器化部署中,更推薦使用啟動參數(shù)注入方式。

到此這篇關于java多線程的文章就介紹到這了,更多相關java多線程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

上犹县| 新疆| 都昌县| 汨罗市| 保德县| 博野县| 嘉义县| 从化市| 清流县| 安福县| 张家港市| 迭部县| 长治市| 夹江县| 鸡东县| 乃东县| 卓尼县| 抚远县| 赣州市| 白城市| 株洲市| 富民县| 贵阳市| 博罗县| 尼勒克县| 平度市| 新宁县| 滨州市| 北碚区| 屯昌县| 渭源县| 江川县| 陆丰市| 华安县| 洛隆县| 宝清县| 黎平县| 唐河县| 商都县| 巨野县| 南江县|