SpringCloud之application.properties和bootstrap.properties区别


一、执行顺序

  • bootstrap.yml(bootstrap.properties)先加载,application.yml(application.properties)后加载
    bootstrap.yml(bootstrap.properties):用来程序引导时执行,应用于更加早期配置信息读取,如可以使用来配置application.yml中使用到参数等
    application.yml(application.properties): 应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等。

二、加载原理

Spring中有上下文一说的,也叫Application Context。Application Context又是有父子关系的,所以必须要理解ApplicationContext是什么。
SpringCloud启动时,会先创建一个BootstrapContext,然后创建一个ApplicationContext,BootstrapContext是ApplicationContext的父上下文,
Bootstrap负责从外部源加载配置并解析,这两个上下文共用一个从外部获取的Environment。Bootstrap配置具有较高的优先级,不会被本地配置覆盖。
Bootstrap典型的应用场景是使用SpringConfig,这个时候你需要把配置信息配在bootstrap里面。Bootstrap属于引导配置,Application属于应用配置。

三、应用场景

  • 当使用外部配置中心服务的时候,你应该在 bootstrap.yml 里面指定 名称服务地址,如使用Nacos配置中心:
    spring:
    application:
      name: auth-service
    cloud:
      nacos:
        config:
          server-addr: 127.0.0.1:8848
  • 一些加密/解密的信息

文章作者: niww
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 niww !
 上一篇
MySQL8连接配置 MySQL8连接配置
1.连接驱动类改为”com.mysql.cj.jdbc.Driver”在之前的驱动类(com.mysql.jdbc.Driver.class)下有这样一段: static { System.err.println("Load
2020-04-07
下一篇 
Oracle中实现ID自增 Oracle中实现ID自增
一、自增列自增列是数据库中值随插入的每个行自动增加的一列。它最常用于主键或 ID 字段,这样每次增加一行时,不用指该字段的值,它就会自动增加,而且是唯一的。 当在 MySQL 中定义列时,我们可以指定一个名为 AUTO_INCREMENT
2020-03-23
  目录