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的区别的更多相关文章

  1. spring cloud config的bootstrap.yml与application.proterties的区别

    bootstrap.yml  和application.yml  都可以用来配置参数 bootstrap.yml可以理解成系统级别的一些参数配置,这些参数一般是不会变动的 application.ym ...

  2. bootstrap.yml与application.yml的区别

    说明:其实yml和properties文件是一样的原理,主要是说明application和bootstrap的加载顺序.且一个项目上要么yml或者properties,二选一的存在. Bootstra ...

  3. SpringBoot2配置文件application.yaml

    源码基于SpringBoot 2.4.4 1.认识配置文件 1.1 配置文件的加载 创建SpringBoot项目的时候,会自动创建一个application.properties文件,该文件是Spri ...

  4. application.yaml配置文件

    spring boot还支持yaml格式的配置文件.这种格式文件是JSON超集文件格式,其以数据为中心,扩展名可是是yml和yaml. yaml格式文件以key/value的格式配置属性,使用缩进控制 ...

  5. ruby YAML.load 和YAML.load_file区别

    1. load( io ) Load a document from the current io stream. File.open( 'animals.yaml' ) { |yf| YAML::l ...

  6. Directory.GetCurrentDirectory和Application.StartupPath的区别

    System.IO.Directory.GetCurrentDirectory()方法用于获得应用程序当前工作目录.System.Windows.Forms.Application.StartupPa ...

  7. 【C#遗补】获取应用程序路径之System.IO.Directory.GetCurrentDirectory和System.Windows.Forms.Application.StartupPath的区别

    原文:[C#遗补]获取应用程序路径之System.IO.Directory.GetCurrentDirectory和System.Windows.Forms.Application.StartupPa ...

  8. C#中AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的区别

    // 获取程序的基目录. System.AppDomain.CurrentDomain.BaseDirectory // 获取模块的完整路径. System.Diagnostics.Process.G ...

  9. SpringCloud bootstrap.yml 和application.yml 加载原理

    Spring Cloud 官方文档:https://cloud.spring.io/spring-cloud-static/spring-cloud.html 一个Spring Cloud的操作是通过 ...

随机推荐

  1. 关于Hadoop调优

    Hadoop生产调优 一.HDFS-核心参数 1.NameNode 内存生产配置 1) NameNode 内存计算 每个文件块大概占用 150byte,一台服务器 128G 内存为例,能存储多少文件块 ...

  2. chage 修改用户密码时间限制

    chage [options] LOGIN chage针对用户的密码过期时间.过期提前多少天警示等功能实现,passwd也可以实现,但是passwd --expire参数是直接用户密码过期,强制用户下 ...

  3. python 得到变量名的结果为名的变量的值locals()

    >>> a="1">>> b="a">>> print(a,b)1 a>>> print ...

  4. Day1 Markdown学习!

    Markdown学习 标题 一级标题:# (空格)+内容 二级标题:##(空格)+内容 同理可支持到六级标题 字体 Hello,World! 两边两个** 加粗 Hello,World! 两边一个* ...

  5. war项目依赖war项目

    还没有看,立个flag:https://my.oschina.net/u/588379/blog/1817077

  6. window对象之计时器--v客学院技术分享

    setTimeout()和setInterval()可以用来注册在指定的时间之后单次或者重复调用的函数.因为它们都是客户端JavaScript中重要的全局函数,所以定义为window对象的方法,但是作 ...

  7. vue(22)Vuex的安装与使用

    前言 每一个 Vuex 应用的核心就是 store(仓库).store基本上就是一个容器,它包含着你的应用中大部分的状态 (state).Vuex 和单纯的全局对象有以下两点不同: Vuex 的状态存 ...

  8. windows安装Laravel框架经验心得(一)

    作为一个程序员,要活到老学到老.虽然自己水平很菜,但是也要继续往前走,所以打算利用一些空闲时间在学习一些新知识,比如Laravel框架. 看书费劲,好不容易找到了一些关于Laravel的教学视频.不过 ...

  9. IO流之节点流(字符流)和数据流关闭

    ​输入流----Reader 1 public class Reader { 2 public static void main(String[] args) throws Exception { 3 ...

  10. GetOverlappedResult 函数

    BOOL GetOverlappedResult( HANDLE hFile, LPOVERLAPPED lpOverlapped, LPDWORD lpNumberOfBytesTransferre ...