<noframes id="bhrfl"><address id="bhrfl"></address>

    <address id="bhrfl"></address>

    <noframes id="bhrfl"><address id="bhrfl"><th id="bhrfl"></th></address>

    <form id="bhrfl"><th id="bhrfl"><progress id="bhrfl"></progress></th></form>

    <em id="bhrfl"><span id="bhrfl"></span></em>

    全部
    常見問題
    產品動態
    精選推薦

    Spring Boot 2.4版本前后的分組配置變化及對多環境配置結構的影響

    管理 管理 編輯 刪除

    《Spring Boot 2.4 對多環境配置的支持更改》一文中,我們講解了Spring Boot 2.4版本對多環境配置的配置變化。除此之外,還有一些其他配置變化,今天我們就繼續講講其他的內容!

    spring.profiles.include對于這個配置項,你是否熟悉呢?從字面意思也不難理解,應該就是用來引入一些其他配置的配置(因為有個include嘛),實際作用也確實如此!

    當我們的應用有很多配置信息的時候,比如當用到了很多中間件MySQL、Redis、MQ等,每個中間件的配置都是一大串的,那么這個時候我們為了配置更簡潔一些,可能就會對其做分組。

    如果你有用過這樣的配置方式,那么在升級2.4版本的時候一定要注意,因為原來的配置方法會失效!

    2.4之前的分組配置

    先來看看2.4版本之前的分組配置,我們用下面這個例子來介紹:

    spring:
      profiles:
        active: "dev"
    
    ---
    spring.profiles: "dev"
    spring.profiles.include: "dev-db,dev-mq"
    
    ---
    spring.profiles: "dev-db"
    
    db: dev-db.didispace.com
    
    ---
    spring.profiles: "dev-mq"
    
    mq: dev-mq.didispace.com
    
    

    其中:

    1. 第一個spring.profiles.active: dev,代表默認激活dev配置
    2. 第二段dev配置中使用了spring.profiles.include來引入其他配置信息,這里模擬一下一個是dev的db配置,一個是dev的mq配置。在2.3和之前版本的時候,我們通常就是這樣來分組配置不同中間件的。
    spring.profiles: "dev"
    spring.profiles.include: "dev-db,dev-mq"
    

    通過修改spring boot版本到2.3,不出意外,你可以在啟動日志開頭,看到激活的配置信息如下:

    The following profiles are active: dev,dev-db,dev-mq
    

    同時激活了dev、dev-db、dev-mq三組配置,include是生效的。

    2.4的分組配置

    在升級spring boot到2.4之后,再啟動之前的應用,你會發現配置就沒有生效了,這里不僅是因為spring.profiles失效的原因,即使我們將其都修改為spring.config.activate.on-profile,也依然無法激活dev-db和dev-mq的配置。因為在2.4版本之后,我們需要使用spring.profiles.group來配置了,同時組織結構也發生了變化。

    可以嘗試把配置修改成如下格式:

    spring:
      profiles:
        active: "dev"
        group:
          "dev": "dev-db,dev-mq"
          "prod": "prod-db,prod-mq"
    
    ---
    spring:
      config:
        activate:
          on-profile: "dev-db"
    
    db: dev-db.didispace.com
    
    ---
    spring:
      config:
        activate:
          on-profile: "dev-mq"
    
    mq: dev-mq.didispace.com
    
    ---
    spring:
      config:
        activate:
          on-profile: "prod-db"
    
    db: prod-db.didispace.com
    
    ---
    spring:
      config:
        activate:
          on-profile: "prod-mq"
    
    mq: prod-mq.didispace.com
    
    

    啟動應用可以在日志開頭看到激活的配置組(默認激活的是dev,所以對應的就是dev-db和dev-mq):

    The following profiles are active: dev,dev-db,dev-mq
    

    修改spring.profiles.active: "prod"直接切換到另外一個環境。

    重啟應用可以在日志開頭看到激活的配置組:

    The following profiles are active: prod,prod-db,prod-mq
    

    可以看到,在2.4版本的配置中,不同環境的配置定義都在第一段默認配置中了,所有的環境定義都轉移到了spring.profiles.group的key字段(上面配置了devprod),value字段則代表了每個環境需要加載的不同配置分組。

    回憶一下我們在《Spring Boot 2.4 對多環境配置的支持更改》open in new window中提到的多環境配置,是不是不同環境的配置標識都集中定義在了每個spring.config.activate.on-profile里。而這次分組的配置改變,讓激活配置、環境配置集中到了默認配置里,其他的profile定義是環境+配置分組的組合內容。

    對于這樣的調整,最直觀的感受就是選擇環境的時候,我不需要往下找有哪些profile就能知道有哪些可選項了,還是方便不少。


    注:本文轉載自“程序猿DD”,如有侵權,請聯系刪除!

    請登錄后查看

    哈哈哈醬 最后編輯于2024-12-18 15:04:01

    快捷回復
    回復
    回復
    回復({{post_count}}) {{!is_user ? '我的回復' :'全部回復'}}
    排序 默認正序 回復倒序 點贊倒序

    {{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

    作者 管理員 企業

    {{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
    {{item.is_suggest == 1? '取消推薦': '推薦'}}
    沙發 板凳 地板 {{item.floor}}#
    {{item.user_info.title || '暫無簡介'}}
    附件

    {{itemf.name}}

    {{item.created_at}}  {{item.ip_address}}
    打賞
    已打賞¥{{item.reward_price}}
    {{item.like_count}}
    {{item.showReply ? '取消回復' : '回復'}}
    刪除
    回復
    回復

    {{itemc.user_info.nickname}}

    {{itemc.user_name}}

    回復 {{itemc.comment_user_info.nickname}}

    附件

    {{itemf.name}}

    {{itemc.created_at}}
    打賞
    已打賞¥{{itemc.reward_price}}
    {{itemc.like_count}}
    {{itemc.showReply ? '取消回復' : '回復'}}
    刪除
    回復
    回復
    查看更多
    打賞
    已打賞¥{{reward_price}}
    1196
    {{like_count}}
    {{collect_count}}
    添加回復 ({{post_count}})

    相關推薦

    快速安全登錄

    使用微信掃碼登錄
    {{item.label}} 加精
    {{item.label}} {{item.label}} 板塊推薦 常見問題 產品動態 精選推薦 首頁頭條 首頁動態 首頁推薦
    取 消 確 定
    回復
    回復
    問題:
    問題自動獲取的帖子內容,不準確時需要手動修改. [獲取答案]
    答案:
    提交
    bug 需求 取 消 確 定
    打賞金額
    當前余額:¥{{rewardUserInfo.reward_price}}
    {{item.price}}元
    請輸入 0.1-{{reward_max_price}} 范圍內的數值
    打賞成功
    ¥{{price}}
    完成 確認打賞

    微信登錄/注冊

    切換手機號登錄

    {{ bind_phone ? '綁定手機' : '手機登錄'}}

    {{codeText}}
    切換微信登錄/注冊
    暫不綁定
    亚洲欧美字幕
    CRMEB客服

    CRMEB咨詢熱線 咨詢熱線

    400-8888-794

    微信掃碼咨詢

    CRMEB開源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
    返回頂部 返回頂部
    CRMEB客服