全站資源開放下載,感謝廣大網友的支持
鏈接失效請移步職業司平臺
非盈利平臺

非盈利平臺

只為分享一些優質內容

Java幫幫-微信公眾號

Java幫幫-微信公眾號

將分享做到極致

微信小程序

微信小程序

更方便的閱讀

職業司微信公眾號

職業司微信公眾號

實時動態通知

安卓APP

安卓APP

我們從此不分開

程序員生活志-公眾號

程序員生活志-公眾號

程序員生活學習圈,互聯網八卦黑料

支付寶贊助-Java幫幫社區
微信贊助-Java幫幫社區

springboot的多profile配置[云圖智聯]

6
發表時間:2020-07-13 10:10

一個項目基本的會有三種環境,開發dev,測試test,生產 prod。每個環境下的參數配置都不一樣,所以配置文件的內容都會不同,那么如何實現實現不同環境之間的切換呢?

 profile 是spring用針對不同環境對不同的配置提供支持的,那么如何定義不同的profile呢?

profile定義

定義profile一共有兩種形式properties配置文件、yml配置文件

1.properties文件

格式:application-{文件標識}.properties

示例:

  • application-test.properties

  • application-dev.properties

  • application-pro.properties

(在不同的profile環境中定義不同的端口號,運行的時候查看控制臺信息,確定最終使用的是哪一個profile環境)

編寫一個名為 application-dev.properties文件:

server.port=8081

編寫一個名為application-prod.properties文件:

server.port=8082

圖示:

2.yml配置文件

2.1多文件形式

yml文件同樣也可以使用多個配置文件進行配置,例如:

編寫一個名為 application-dev.yml文件:

server:
  port: 8081

編寫一個名為application-prod.yml文件:

server:
   port: 8082

2.2文檔塊形式

yml文件可以使用“---”定義不同的文檔塊,作用類似上面的多個配置文件效果

server:
  port: 8085
spring:
  profiles:
    active: prod   #激活prod環境
---
server:
  port: 8084
spring:
  profiles: prod  #指定屬于哪個環境

profile環境切換

實現不同profile環境切換一共有三種形式

1.配置文件設置:

在主配置文件中設置對應的屬性

properties
spring.profiles.active=dev

也可以在IDEA編輯器中設置

圖示:

2.追加項目參數:

在控制臺使用命令啟動項目,設置active參數

2.1先打包項目

2.2docs命令執行(也就是所謂的cmd窗口)

java -jar spring-boot-02-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

同樣在IDEA中也可以設置啟動參數與命令同理

Edit Configurations... --> Program arguments:添加參數--spring.profiles.active=dev

圖示:

3.虛擬機參數:

步驟類似上一步,IDEA設置啟動項配置

Edit Configurations... -> VM options添加參數-Dspring.profiles.active=dev

-Dspring.profiles.active=dev 注意:-D是固定寫法

圖示:

4.使用Maven Profile

4.1Profile配置——xml

Maven 也提供了 Profile 支持,它允許我們在 pom.xml 中定義多個 Profile ,每個 profile 可以指定自己的一些配置、依賴、觸發條件等。例如:

<profiles>
    <profile>
        <!--不同環境Profile的唯一id-->
        <id>dev</id>
        <activation>
             <!--配置默認激活-->
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
             <!--profiles.active是自定義的字段(名字隨便起),自定義字段可以有多個-->
            <profile.active>dev</profile.active>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <profile.active>prod</profile.active>
        </properties>
    </profile>
</profiles>

可以看到定義了多個profile,每個profile都有唯一的id,也包含properties屬性。這里為每個profile都定義一個名為profiles.active的properties,每個環境的值不同。當我們打包項目時,激活不同的環境,profiles.active字段就會被賦予不同的值。

4.2Profile配置——命令行配置

即在使用maven打包時通過-P參數,-P后跟上profile的唯一id,如

mvn clean package -Ptest

熟悉idea的同學都知道,這里的${profile.active}我們在idea的maven的配置處進行快速的切換。

我們知道主配置文件的dev/test/prod在沒有使用Maven Profile的時候,我們是需要手動修改的,但是使用Maven Profile之后,我們可以把這個工作交給maven去做。

在application.yml進行下面的修改:

spring:
  profiles:
    active: @profile.active@ #此處由maven的環境選擇決定

這樣我們就可以完全把配置文件的指定和生成交給maven。

免費學習視頻歡迎關注云圖智聯:


Java幫幫學習群生態

Java幫幫學習群生態

總有一款能幫到你

Java學習群

Java學習群

與大牛一起交流

大數據學習群

大數據學習群

在數據中成長

九點編程學習群

九點編程學習群

深夜九點學編程

python學習群

python學習群

人工智能,爬蟲

測試學習群

測試學習群

感受測試的魅力

Java幫幫生態承諾

Java幫幫生態承諾

一直堅守,不負重望

初心
勤儉
誠信
正義
分享
友鏈交換:加幫主QQ2524138991 留言即可 24小時內答復  
業司
教育資訊
會員登錄
獲取驗證碼
登錄
登錄
我的資料
留言
回到頂部