SpringBoot的配置文件application.yml及加载顺序详解

 更新时间:2023年07月10日 10:09:19   作者:花果水莲  
这篇文章主要介绍了SpringBoot的配置文件application.yml及加载顺序,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

SpringBoot配置文件application.yml及加载顺序

配置文件分类

1. SpringBoot中4级配置文件

  • 1级(工程路径config目录配置文件):file:config/application.yml           [最高]
  • 2级(工程路径目录配置文件):file:application.yml
  • 3级(项目类路径config目录配置文件):classpath:config/application.yml
  • 4级(项目类路径目录配置文件):classpath:application.yml               [最低]

2. 作用:

  • 1级与2级留做系统打包后设置通用属性,1级常用于运维经理进行线上整体项目部署方案调控,2级服务于运维人员配置涉密线上环境
  • 3级和4级用于系统开发阶段设置通用属性,3级常用于项目经理进行整体项目属性调控,4级服务于开发人员本机开发与测试

3. 注意:

多层级配置文件间的属性采用叠加并覆盖的形式作用于程序。

自定义配置文件

1. 配置文件可以修改名称,通过启动参数设定

Program arguments:  ----spring.config.name=myapplication

2. 配置文件可以修改路径,通过启动参数设定

3.微服务开发中配置文件通过配置中心进行设置

配置文件总结

1. SpringBoot在开发和运行环境均支持使用临时参数修改工程配置

2. SpringBoot支持4级配置文件,应用于开发与线上环境进行配置的灵活设置

3. SpringBoot支持使用自定义配置文件的形式修改配置文件存储位置

4.基于微服务开发时配置文件将使用配置中心进行管理

Springboot中application.yml、application.properties和bootStrap.yml加载顺序

SpringApplication位于项目根目录

所以所有得代码要和SpringApplication所在目录平级或下一级

以jar包发布springboot项目时

默认会先使用jar包跟目录下的application.properties来作为项目配置文件。

如果在不同的目录中存在多个配置文件,它的读取顺序是:        

  • 1、config/application.properties(项目根目录中config目录下)        
  • 2、config/application.yml        
  • 3、application.properties(项目根目录下)        
  • 4、application.yml        
  • 5、resources/config/application.properties(项目resources目录中config目录下)        
  • 6、resources/config/application.yml        
  • 7、resources/application.properties(项目的resources目录下)        
  • 8、resources/application.yml

注:     

1、如果同一个目录下,有application.yml也有application.properties,默认先读取application.properties。     

2、如果同一个配置属性,在多个配置文件都配置了,默认使用第1个读取到的,后面读取的不覆盖前面读取到的。     

3、创建SpringBoot项目时,一般的配置文件放置在“项目的resources目录下”​​​​​      

4、先后加载顺序:若application 和bootstrap 在同一目录下:bootstrap先加载 application后加载

若application.yml 和bootStrap.yml 在同目录下

则bootStrap.yml 的加载顺序要于application.yml,即bootStrap.yml  会优先被加载。   

原理:

bootstrap.yml 于应程序上下的引导阶段。              

bootstrap.yml 由Spring ApplicationContext加载。            

  • bootstrap.yml 可以理解成系统级别的⼀些参数配置,这些参数⼀般是不会变动的。            
  • application.yml 可以⽤来定义应⽤级别的,如果搭配 spring-cloud-config 使用 application.yml 定义的文件可以实现动态替换。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java Map集合用法详解

    Java Map集合用法详解

    Map用于保存具有映射关系的数据,Map集合里保存着两组值,一组用于保存Map的ley,另一组保存着Map的value;Map集合和查字典类似,通过key找到对应的value,通过页数找到对应的信息。用学生类来说,key相当于学号,value对应name,age,sex等信息。用这种对应关系方便查找
    2021-10-10
  • springboot的实体类字段校验的分组校验具体实现步骤

    springboot的实体类字段校验的分组校验具体实现步骤

    分组校验允许在不同场景下对同一实体类应用不同的校验规则,通过定义分组接口、在实体类和Controller中指定分组,以及全局异常处理,可以灵活控制校验规则,本文介绍springboot的实体类字段校验的分组校验,感兴趣的朋友一起看看吧
    2025-03-03
  • 基于Maven pom文件中属性变量总结

    基于Maven pom文件中属性变量总结

    这篇文章主要介绍了Maven pom文件中属性变量总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java实现将Word转换成Html的示例代码

    Java实现将Word转换成Html的示例代码

    在业务中,常常会需要在浏览器中预览Word文档,或者需要将Word文档转成HTML文件保存,本文主要为大家详细介绍了Java实现Word转换成Html的相关方法,希望对大家有所帮助
    2024-02-02
  • SpringBoot导入mail依赖报错问题解决

    SpringBoot导入mail依赖报错问题解决

    这篇文章主要介绍了SpringBoot导入mail依赖报错问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Java之SpringCloud Eurka注册错误解决方案

    Java之SpringCloud Eurka注册错误解决方案

    这篇文章主要介绍了Java之SpringCloud Eurka注册错误解决方案,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • SpringBoot项目调优及垃圾回收器的比较详解

    SpringBoot项目调优及垃圾回收器的比较详解

    这篇文章主要介绍了SpringBoot项目调优及垃圾回收器的比较详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 通过jstack分析解决进程死锁问题实例代码

    通过jstack分析解决进程死锁问题实例代码

    这篇文章主要介绍了通过jstack分析解决进程死锁问题实例代码,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Java程序执行过程及内存机制详解

    Java程序执行过程及内存机制详解

    本讲将介绍Java代码是如何一步步运行起来的,还会介绍Java程序所占用的内存是被如何管理的:堆、栈和方法区都各自负责存储哪些内容,感兴趣的朋友跟随小编一起看看吧
    2020-12-12
  • PageHelper分页查询操作方法示例

    PageHelper分页查询操作方法示例

    这篇文章主要为大家介绍了PageHelper分页查询数据操作方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08

最新评论