Spring Boot 的配置加載順序是“后來居上”——優先級高的配置源會覆蓋優先級低的配置源中的同名配置
覆蓋規則如下:
- 后加載的配置具有更高的優先級,會覆蓋先加載的配置。
- 如果多個配置源中存在同名配置項,最終生效的是具有最高優先級的那個配置項。
舉個實際例子
假設有以下兩個配置源
***:ad:rocketmq:name-server: 127.0.0.1:9876 # 默認配置
# 設置環境變量
export ITBOX_AD_ROCKETMQ_NAME_SERVER=10.10.20.46:9876
最終生效的 itbox.ad.rocketmq.name-server
是環境變量的值:10.10.20.46:9876
。
線上部署場景,假設激活了 kubernetes Profile,加載順序和覆蓋邏輯如下: