springBoot 读取application.yml及优先级

1.回顾之前的web.xml 的加载方式

 

 2.springBoot加载application.yml方式

1.Application.run方法中的ConfigurableEnvironment environment = this.prepareEnvironment(listeners, bootstrapContext, applicationArguments);是准备环境,里面会加载配置文件

 2.prepareEnvironment 方法中的listeners.environmentPrepared(bootstrapContext, (ConfigurableEnvironment)environment);这里会触发事件机制 进行配置文件的读取执行

 3.org.springframework.boot.context.config.ConfigFileApplicationListener 接收事件 进行读取配置文件

3.配置文件读取的优先级

    • 1.同一位置,不同类型
      • properties > yml 也就是同一属性,以properties为准
      • 不同属性 互相补充
    • 2.同一类型 不同位置
      • config/application.properties(项目根目录中config目录下)>application.properties(项目根目录下)>resource/config/application.properties>resource/application.properties 也就是同一属性,以最大的为准
      • 不同属性 互相补充
    • 3.激活配置文件与默认配置文件的优先级
      • application-xxx.properties >application.properties 也就是同一属性,以设置的激活文件为准
      • 不同属性 互相补充
    •  

 

posted @ 2023-06-16 19:56  恃才傲物123  阅读(371)  评论(0编辑  收藏  举报