bootstrap.yaml
配置一些引導系統啟動的引數,這些引數一旦指定後就不會變動了。比如程式的埠號,配置中心的地址等。
application.yaml
應用級別的引數配置,可能會根據業務需求做動態配置。比如日誌級別,一些開關引數等。
載入的順序
加入我們使用到配置中的話,我們還會涉及到很多配置檔案。那麼這些配置檔案的載入順序是怎麼樣的呢?
這裡我做了個實驗,使用nacos做配置中心,一共涉及到下面幾個配置檔案:
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上的配置的優先順序會比較高。