Spring Boot 的配置加载顺序

Spring Boot 的配置加载顺序是"后来居上"------优先级高的配置源会覆盖优先级低的配置源中的同名配置

覆盖规则如下:

  • 后加载的配置具有更高的优先级,会覆盖先加载的配置。
  • 如果多个配置源中存在同名配置项,最终生效的是具有最高优先级的那个配置项。

举个实际例子

假设有以下两个配置源

java 复制代码
***:
  ad:
    rocketmq:
      name-server: 127.0.0.1:9876  # 默认配置
java 复制代码
# 设置环境变量
export ITBOX_AD_ROCKETMQ_NAME_SERVER=10.10.20.46:9876

最终生效的 itbox.ad.rocketmq.name-server 是环境变量的值:10.10.20.46:9876

线上部署场景,假设激活了 kubernetes Profile,加载顺序和覆盖逻辑如下 :

相关推荐
专注VB编程开发20年2 分钟前
VB.NET关于接口实现与简化设计的分析,封装其他类
java·前端·数据库
大数据魔法师24 分钟前
Redis(三) - 使用Java操作Redis详解
java·数据库·redis
天天爱吃肉821834 分钟前
车载以太网驱动智能化:域控架构设计与开发实践
java·运维·网络协议·微服务
IT光35 分钟前
Redis 五种类型基础操作(redis-cli + Spring Data Redis)
java·数据库·redis·spring·缓存
keke1036 分钟前
Java【14_3】接口(Comparable和Comparator)、内部类-示例
java·开发语言·servlet
Q_Q19632884751 小时前
python的漫画网站管理系统
开发语言·spring boot·python·django·flask·node.js·php
言之。1 小时前
Go 语言中接口类型转换为具体类型
开发语言·后端·golang
代码不停1 小时前
Java二叉树题目练习
java·开发语言·数据结构
MaCa .BaKa1 小时前
38-日语学习小程序
java·vue.js·spring boot·学习·mysql·小程序·maven
贺函不是涵1 小时前
【沉浸式求职学习day41】【Servlet】
java·学习·servlet·maven