bootstrap.yaml和application.yaml的区别
bootstrap.yaml
配置一些引导系统启动的参数,这些参数一旦指定后就不会变动了。比如程序的端口号,配置中心的地址等。
application.yaml
应用级别的参数配置,可能会根据业务需求做动态配置。比如日志级别,一些开关参数等。
加载的顺序
加入我们使用到配置中的话,我们还会涉及到很多配置文件。那么这些配置文件的加载顺序是怎么样的呢?
这里我做了个实验,使用nacos做配置中心,一共涉及到下面几个配置文件:


nacos配置中心的相关配置如下:
spring:
  profiles:
    active: @profiles.active@
  application:
    name: payment-service-dubbo-nacos
  main:
    allow-bean-definition-overriding: true
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
        # 配置注册在tpag这个用户专有的namespace
        namespace: 6f97a206-ce19-44c2-85be-c601170d306e
        group: ${spring.application.name}
        username: tpag
        password: tpag
        refresh-enabled: true
        # 这边的shared-config和ext-config不能配置namespace,和上面的配置共享一个namespace,所以一般用于读取一个团队内部的共享文件
        extensionConfigs[0]:
          data-id: ext1.yaml
          refresh: true
          # 默认是DEFAULT_GROUP
          group: ${spring.application.name}
        extensionConfigs[1]:
          data-id: ext2.yaml
          refresh: true
          group: ${spring.application.name}
        shared-configs[0]:
          data-id: share1.yaml
          refresh: true
          group: ${spring.application.name}
        shared-configs[1]:
          data-id: share2.yaml
          refresh: true
          group: ${spring.application.name}
这几个配置文件加载的顺序是 bootstrap.yml > application.yml > application-dev.yml > share1.yaml > share2.yaml > ext1.yaml > ext2.yaml > cloud:nacos:config 标签下面dataId指定的配置文件。
假如配置文件中有相同的配置,后加载的配置会覆盖先加载的配置,所以如果使用Nacos配置中心的话,nacos上的配置的优先级会比较高。
bootstrap.yaml和application.yaml的区别的更多相关文章
- spring cloud  config的bootstrap.yml与application.proterties的区别
		
bootstrap.yml 和application.yml 都可以用来配置参数 bootstrap.yml可以理解成系统级别的一些参数配置,这些参数一般是不会变动的 application.ym ...
 - bootstrap.yml与application.yml的区别
		
说明:其实yml和properties文件是一样的原理,主要是说明application和bootstrap的加载顺序.且一个项目上要么yml或者properties,二选一的存在. Bootstra ...
 - SpringBoot2配置文件application.yaml
		
源码基于SpringBoot 2.4.4 1.认识配置文件 1.1 配置文件的加载 创建SpringBoot项目的时候,会自动创建一个application.properties文件,该文件是Spri ...
 - application.yaml配置文件
		
spring boot还支持yaml格式的配置文件.这种格式文件是JSON超集文件格式,其以数据为中心,扩展名可是是yml和yaml. yaml格式文件以key/value的格式配置属性,使用缩进控制 ...
 - ruby  YAML.load 和YAML.load_file区别
		
1. load( io ) Load a document from the current io stream. File.open( 'animals.yaml' ) { |yf| YAML::l ...
 - Directory.GetCurrentDirectory和Application.StartupPath的区别
		
System.IO.Directory.GetCurrentDirectory()方法用于获得应用程序当前工作目录.System.Windows.Forms.Application.StartupPa ...
 - 【C#遗补】获取应用程序路径之System.IO.Directory.GetCurrentDirectory和System.Windows.Forms.Application.StartupPath的区别
		
原文:[C#遗补]获取应用程序路径之System.IO.Directory.GetCurrentDirectory和System.Windows.Forms.Application.StartupPa ...
 - C#中AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的区别
		
// 获取程序的基目录. System.AppDomain.CurrentDomain.BaseDirectory // 获取模块的完整路径. System.Diagnostics.Process.G ...
 - SpringCloud bootstrap.yml 和application.yml 加载原理
		
Spring Cloud 官方文档:https://cloud.spring.io/spring-cloud-static/spring-cloud.html 一个Spring Cloud的操作是通过 ...
 
随机推荐
- Linux安装telnet(转)
			
一.安装telnet 1.检测telnet-server的rpm包是否安装 [root@localhost ~]# rpm -qa telnet-server 若无输入内容,则表示没有安装.出于安 ...
 - oracle 大表在线删除列操作(alter table table_name set unused  )
			
在某些情况下业务建的表某些列没有用到,需要进行删除,但是如果是数据量很大的大表,直接 alter table table_name drop column column_name;这种方法删除,那么将 ...
 - Luogu P2051「AHOI2009」中国象棋
			
看见第一眼觉得是状压 \(\text{DP}\)?观察数据范围发现不可做 那按照最常规思路设状态试试? 设状态为\(dp[i][j]\)表示\(i*j\)的棋盘的方案数 好像转移不了欸 要不再来一维? ...
 - 1.前言-聊聊Java这条路
			
一.解决大家的疑问 1.零基础学习编程? 有编程基础的比零基础的困难,毕竟有一些固定思维 目标:爱好.做网站.做游戏 2.英语不好能学吗? 程序并没有大家想象的那么多英语,天天都在用,慢慢就掌握了 3 ...
 - PYTHON 利用ImagePipeline专门爬取图片
			
自定义file_path()函数,即可以原有图像文件名为名来保存,并分类保存 def file_path(self, request, response=None, info=None): image ...
 - 字符串的模式匹配算法——KMP模式匹配算法
			
朴素的模式匹配算法(C++) 朴素的模式匹配算法,暴力,容易理解 #include<iostream> using namespace std; int main() { string m ...
 - kubespray-2.14.2安装kubernetes-1.18.10(ubuntu-20.04.1)
			
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
 - python基础之函数的应用
			
#函数应用# 1.语法"""def 函数名(参数): 函数体"""# 2. 没有参数的函数# def readbook():# print( ...
 - python基础之列表推导式
			
#列表推导式 ---> 返回的是列表 for语句 效率更高# 1*1 2*2 3*3 4*4 5*5 6*6 7*7 8*8 9*9# import time# to = time.clock( ...
 - 网络损伤仪WANsim的带宽限制功能
			
带宽限制功能 带宽限制功能是网络损伤仪WANsim的第一项损伤功能.进入WANsim的报文首先会经过报文过滤器的处理,随后,就会进入带宽限制. 点击虚拟链路,就可以进入网络损伤界面,对报文进行带宽限制 ...