bootstrap和application的区别

  • bootstrap.yml 先于 application.yml。

  • bootstrap.yml 用于 ApplicationContext 引导阶段。由父 Spring ApplicationContext 加载。定义系统级别的参数配置,这些参数一般不会变动。

  • application.yml 用来定义应用级别的参数配置。搭配 spring-cloud-config 使用时 application.yml 定义的参数可以实现动态替换。

  • application.yml 会覆盖 bootstrap.yml 的参数配置。

springboot的配置优先级

  • 由里向外,外层覆盖里层。

命令行参数 > 操作系统环境变量 > 应用外的配置文件 > 应用内的配置文件

加入springcloud配置中心后

配置中心 > 命令行参数 > 本地application.yml > 本地bootstrap.yml

配置允许覆盖:

spring:
  cloud:
    config:
      allowOverride: true
      overrideNone: true
      overrideSystemProperties: false

更多推荐

springboot配置优先级(bootstrap和application)