SpringBoot及Nacos配置中心加载顺序及覆盖生效关系

这篇具有很好参考价值的文章主要介绍了SpringBoot及Nacos配置中心加载顺序及覆盖生效关系。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、测试环境版本

二、测试结果

1、标准的SpringBoot应用

2、含有Nacos配置中心的SpringBoot应用


一、测试环境版本

  • spring-boot-starter-parent  2.7.10

  • spring-cloud-starter-bootstrap  3.1.6

  • spring-cloud-starter-alibaba-nacos-config  2021.0.4.0

  • nacos-client 2.1.1

  • nacos服务端 2.2.1

二、测试结果

1、标准的SpringBoot应用

在标准的SpringBoot应用中,本地配置加载顺序如下:

  • bootstrap配置 加载先于 application配置
  • 不带profile的配置 加载先于 带profile的配置
  • (不含后缀的)同文件名配置 *.yaml  加载先于 *.properties

综上,本地加载顺序为

  1. bootstrap.yaml
  2. bootstrap.properties
  3. bootstrap-{profile}.yaml
  4. bootstrap-{profile}.properties
  5. application.yaml
  6. application.properties
  7. application-{profile}.yaml
  8. application-{profile}.properties

因此,配置生效覆盖关系:

    对于key名相同,后加载会覆盖掉前加载,故而最终为后加载的配置项生效!

    对于key名不同,则直接生效(会加载,但不会被覆盖);

    注意:不能理解为文件级整体覆盖,而仅是同名key会被后加载的键值覆盖。文章来源地址https://www.toymoban.com/news/detail-479712.html

2、含有Nacos配置中心的SpringBoot应用

带Nacos配置中心的SpringBoot应用中,配置加载顺序如下:

  • 本地bootstrap配置 加载先于 本地application配置
  • 本地配置 加载先于 nacos配置中心
  •  nacos配置中心上共享配置(见下说明) 加载先于 nacos配置中心该服务配置(见下说明)
  • 不带profile的配置 加载先于 带profile的配置
  • 本地(不含后缀的)同文件名配置 *.yaml  加载先于 *.properties
  • nacos配置中心因需要通过data ID指定(或者通过spring.cloud.nacos.config.file-extension指定后缀),所以对于Nacos配置中心上的某个Data ID而言,不会存在既加载其*.yaml又加载其*.properties的情形

综上,本地及Nacos配置中心共同加载顺序为

  1. bootstrap.yaml
  2. bootstrap.properties
  3. bootstrap-{profile}.yaml
  4. bootstrap-{profile}.properties
  5. application.yaml
  6. application.properties
  7. application-{profile}.yaml
  8. application-{profile}.properties
  9. nacos配置中心共享配置(通过spring.cloud.nacos.config.shared-configs指定)
  10. Nacos配置中心该服务配置(通过spring.cloud.nacos.config.prefix和spring.cloud.nacos.config.file-extension指定)
  11. Nacos配置中心该服务-{profile}配置(通过spring.cloud.nacos.config.prefix和spring.cloud.nacos.config.file-extension、以及spring.profiles.active指定)

因此,配置生效覆盖关系:

    对于key名相同,后加载会覆盖掉前加载,故而最终为后加载的配置项生效!

    对于key名不同,则直接生效(会加载,但不会被覆盖);

    注意:不能理解为文件级整体覆盖,而仅是同名key会被后加载的键值覆盖。

到了这里,关于SpringBoot及Nacos配置中心加载顺序及覆盖生效关系的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot+nacos配置中心获取配置失败

    配置写在boostrap.yml中,因为bootstrap.yml启动要先于application.yml 参数说明 1. 检查参数是否正确 需要注意的是namespace对应的是nacos中的命名空间的ID 并不是命名空间的名称 2.检查nacos的版本和启动方式 如果nacos的版本是2.0 启动方式是docker容器启动,那么就需要检查启动nacos的映射

    2024年02月13日
    浏览(45)
  • SpringBoot整合Nacos实现配置中心

    目录 1.Nacos定位 2.Nacos的安装配置 3.整合Nacos 3.1.Nacos安装 3.2.Nacos登录 3.3.配置Nacos      4.Nacos使用 4.1.引入 Maven 依赖 4.2.配置bootstrap.yml 4.3.Nacos配置类 4.4.启用Nacos服务 4.5.测试获取配置 5.加载多个配置文件 datasource-dev.yaml mybatis-plus-dev.yaml 本地文件bootstrap.yml Contro代码 测试结果

    2024年02月09日
    浏览(38)
  • Springboot获取不到nacos配置中心的配置问题

    记录一下Springboot获取不到nacos配置中心的配置问题 由于项目使用的nacos老版本,存在风险bug, 需要将nacos升级至2.2.1及以上版本,版本升级完毕之后 启动项目发现项目开始报错,提示dynamic-datasource can not find primary datasource 但是我明明在nacos中已经配置了数据源,还会出现这样的问题

    2024年02月09日
    浏览(46)
  • SpringBoot 整合 Nacos 实现统一配置中心

    目录 1. Nacos 功能 1.1 配置中心 2. SpringBoot 整合 Nacos 实现统一配置中心 2.1 Nacos 的部署安装 2.1.1 安装并启动 Nacos 2.1.2 开启Nacos控制台授权登录 2.1.3 将 Nacos 的数据源切换为 MySQL 2.2 实现配置中心 2.2.1 创建配置信息 2.2.2 SringBoot 使用配置中心 配置中心 注册中心         在实际

    2024年02月06日
    浏览(51)
  • SpringBoot配置文件的加载顺序

    一、引言 如果我们了解SpringBoot配置文件的加载顺序,对项目的开发和部署会有很大的帮助。举个工作中的例子,我们的项目是微服务架构模式,用Nacos做注册中心(可以配置每个微服务),所有服务请求需要通过网关,由网关做统一的鉴权和路由转发。环境有三套,本地环境

    2024年02月02日
    浏览(86)
  • Springboot 实践(18)Nacos配置中心参数自动刷新测试

            前文讲解了Nacos 2.2.3配置中心的服务端的下载安装,和springboot整合nacos的客户端。Springboot整合nacos关键在于使用的jar版本要匹配,文中使用版本如下:         ☆ springboot版本:   2.1.5.RELEASE         ☆ spring cloud版本  Greenwich.RELEASE         ☆ spring clou

    2024年02月07日
    浏览(34)
  • springcloud/springboot集成NACOS 做注册和配置中心以及nacos源码分析

    Spring Cloud 是一系列框架的有序集合如服务发现注册、配置中心、消息总线、负载均衡、熔断器、数据监控等。 SpringCloud 将多个服务框架组合起来,通过Spring Boot进行再封装,屏蔽掉了复杂的配置和实现原理,最终给开发者提供了一套简单易懂、易部署和易维护的分布式系统开

    2024年02月08日
    浏览(67)
  • 使用nacos配置中心管理配置文件时,springcloud程序启动报错,无法找到对应的配置文件(加载到了错误的配置文件)

    1、将SpringBoot项目升级为SpringCloud 2、SpringBoot版本从 2.1.3.RELEASE 升级为 2.7.8 3、不使用Nacos配置中心,而是加载本地配置文件时,程序启动正常 4、使用Nacos配置中心,加载到了错误的配置文件,导致程序启动失败 1、 bootstrap.yml 配置 2、查看Nacos配置中心 2.1、 group 和 namespace 都没

    2024年02月04日
    浏览(60)
  • Intellij IDEA配置springBoot热加载,使代码修改后无须重启服务立即生效

    1.Intellij IDEA左上角——文件—— settings——搜索debug,然后按下图设置好后点击ok 2.修改springboot服务器配置,使得更新springboot应用程序或IDEA窗口失去焦点时,更新类和资源 3.IDEA开启项目自动编译 Intellij IDEA左上角——文件—— settings——搜索compiler,然后按下图设置号后点击

    2024年02月08日
    浏览(43)
  • 112、SpringBoot中配置文件的加载顺序是怎样的?

    优先级从高到低,高优先级的配置覆盖低优先级的配置,所有配置会形成互补配置。 命令行参数。所有的配置都可以在命令行上进行指定 Java系统属性(System.getProperties()); 操作系统环境变量; jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件 jar包内部的

    2024年02月15日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包