Spring boot 配置文件Nacos和环境变量优先级问题测试
2023-12-15 12:51:22
Spring boot 配置文件Nacos和环境变量优先级问题
背景
我们在开发的时候,使用的k8s部署spring boot服务,服务连接nacos获取配置文件。在配置spring boot的服务的时候,会设置环境变量,来指定spring.profile.active。后来为了方便部署,把nacos的一些配置提到了环境变量。通过K8S 的env来进行配置。但是后来发现env不会生效,而是nacos生效。
这和平时认为的观点有些出入。因为平时配置的时候,都认为是env 环境变量的优先级比nacos要高一些。
结论
先说结论:
- env一般配置在nacos加载之前的配置,所以认为其优先级比较高
- nacos可以通过占位符来进行配置,如果env包含占位符的信息,则会使env生效。
所以在env一般配置决定于nacos加载的内容。例如,active,nacos的连接配置信息。
生效的顺序如下:越靠前优先级越高(应该是相应的越晚加载,有待考证)
nacos-{active} 配置 > nacos 配置 > java -jar 命令行配置 > 环境变量 > application-{active} > application > bootstrap-{active} > bootstrap
如果nacos里面通过 这样的${} 占位符进行替换。那么占位符的内容将更生效。同时占位符的配置也会有优先级的顺序。
nacos 配置 充当占位符 > java -jar 命令行配置 充当占位符 > 环境变量 充当占位符 > nacos-{active} 配置 > ……
之后再补充设计的实验。
文章来源:https://blog.csdn.net/zz133110/article/details/134922670
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!