bootstrap.yaml和application.yaml的區別


bootstrap.yaml

配置一些引導系統啟動的參數,這些參數一旦指定后就不會變動了。比如程序的端口號,配置中心的地址等。

application.yaml

應用級別的參數配置,可能會根據業務需求做動態配置。比如日志級別,一些開關參數等。

加載的順序

加入我們使用到配置中的話,我們還會涉及到很多配置文件。那么這些配置文件的加載順序是怎么樣的呢?

這里我做了個實驗,使用nacos做配置中心,一共涉及到下面幾個配置文件:

image-20210824154753619

image-20210824154841647

nacos配置中心的相關配置如下:

spring:
  profiles:
    active: @profiles.active@
  application:
    name: payment-service-dubbo-nacos
  main:
    allow-bean-definition-overriding: true
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
        # 配置注冊在tpag這個用戶專有的namespace
        namespace: 6f97a206-ce19-44c2-85be-c601170d306e
        group: ${spring.application.name}
        username: tpag
        password: tpag
        refresh-enabled: true
        # 這邊的shared-config和ext-config不能配置namespace,和上面的配置共享一個namespace,所以一般用於讀取一個團隊內部的共享文件
        extensionConfigs[0]:
          data-id: ext1.yaml
          refresh: true
          # 默認是DEFAULT_GROUP
          group: ${spring.application.name}
        extensionConfigs[1]:
          data-id: ext2.yaml
          refresh: true
          group: ${spring.application.name}
        shared-configs[0]:
          data-id: share1.yaml
          refresh: true
          group: ${spring.application.name}
        shared-configs[1]:
          data-id: share2.yaml
          refresh: true
          group: ${spring.application.name}

這幾個配置文件加載的順序是 bootstrap.yml > application.yml > application-dev.yml > share1.yaml > share2.yaml > ext1.yaml > ext2.yaml > cloud:nacos:config 標簽下面dataId指定的配置文件。

假如配置文件中有相同的配置,后加載的配置會覆蓋先加載的配置,所以如果使用Nacos配置中心的話,nacos上的配置的優先級會比較高。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM