【配置中心】使用spring cloud配置中心后的配置优先级

关于springboot服务使用配置中心后,配置项的优先级问题

springboot的配置优先级

命令行参数 > 操作系统环境变量 > 应用外的配置文件 > 应用内的配置文件

这里命令行参数设置的优先级是最高的,方便部署不同环境。

加入springcloud配置中心后

加入springcloud的配置中心后,优先级并不是想象中的命令行最高优先级。

优先级有:配置中心 > 命令行参数 > 本地application.yml > 本地bootstrap.yml

它的设计者认为,配置中心就是最高优先级的,不允许外部修改。

如果想要覆盖,可在远程配置中加下面配置

spring:
cloud:
config:
# 如果本地配置优先级高,那么 override-none 设置为 true,包括系统环境变量、本地配置文件等配置
override-none: true
# 如果想要远程配置优先级高,那么 allow-override 设置为 false,如果想要本地配置优先级高那么 allow-override 设置为 true
allow-override: true
# 只有系统环境变量或者系统属性才能覆盖远程配置文件的配置,本地配置文件中配置优先级低于远程配置;注意本地配置文件不是系统属性
override-system-properties: false

对了,这一段必须写在配置中心才能生效,仅写在本地是没有用的噢




如果有使用 yaml 格式的话,试验了一下,优先级是这样子的:

配置中心 > --server.port > -Dserver.port > application.yml > application.yaml > bootstarp.yml > bootstarp.yaml

有时候,想做一些临时的测试,比如修改个端口号,调整个服务的注册名什么的,发现使用命令行参数怎么不起作用?原来是springcloud 默认配置中心优先级最好,也没毛病。知道怎样调整就行了。

小记一下。

参考:
https://cloud.tencent.com/developer/article/1164182
https://blog.51cto.com/u_15856116/5813173

posted @   aaacarrot  阅读(1835)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示