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

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

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

一、背景說明

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

  • 開發(fā)環(huán)境(dev):打印調試日志、使用本地數(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 內部配置不同所有配置文件打包進一個 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> 標簽允許在 打包階段 注入不同屬性值。
結合 Spring Boot 的占位符替換機制(@spring.profiles.active@),
可以讓打出來的 jar 在內部就寫死對應環(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

將生成的配置內容:

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ù)加載對應配置文件。
這種方式無需重新打包,只要調整命令即可切換環(huán)境。

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

? 2. 配置文件結構

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

? 七、總結

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

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

相關文章

最新評論

杭锦后旗| 湖北省| 大同市| 犍为县| 上犹县| 佳木斯市| 黄石市| 诸城市| 武鸣县| 西畴县| 湄潭县| 错那县| 洛隆县| 彭阳县| 博乐市| 伊通| 观塘区| 镇沅| 错那县| 含山县| 温泉县| 固镇县| 苏尼特右旗| 铜梁县| 浦城县| 商洛市| 大悟县| 榆树市| 邵阳县| 泗洪县| 独山县| 逊克县| 碌曲县| 高安市| 罗甸县| 南丰县| 西平县| 克什克腾旗| 西畴县| 关岭| 安阳县|