SpringBoot中的配置文件加载顺序

一、配置文件的介绍

我们都知道springboot中的配置文件分为两种,application.properties和application.yml这两个。那么在开发的过程中,总是会遇到多个配置文件,这个为什么呢?主要是这些配置文件放在不同位置,会有不同的加载顺序,这样就可以形成了互补配置,从而实现不用老是纠结一个配置文件改来改去的问题了,因为高优先级的配置文件会自动盖掉低优先级的配置文件的属性。下面来介绍各个配置文件的位置以及它们的优先级问题。

二、配置文件位置及优先级

  1. 配置文件两个大位置
    一类是放在项目的根目录下面,一类则是放在Resources目录下面的
  2. 每一类中的两类
    主要是在不在config目录下面
  3. 下面详细介绍这四类
    1.Resources目录下和项目中的config目录下的优先级
#resources目录下的
server.port=8181

#resources/config目录下的
server.port=8282

控制台端口如下:

spring boot配置文件数组 springboot 配置文件顺序_根目录

可见,这里面config目录下面的优先级高一些。

2.项目根目录下面和项目根目录下面的config目录里面的配置文件

spring boot配置文件数组 springboot 配置文件顺序_spring boot_02

同样,也是config中的高,并且都已经覆盖了resources目录下的

3.总结

Springboot项目启动时会按照如下顺序由高到低读取配置,高优先级的属性会覆盖低优先级的属性,属性文件之间存在互补配置的特性

  • project:/config/(项目根目录下面config文件夹里的配置文件)
  • project:/(项目根目录下面的配置文件)
  • classpath:/config/(Resources文件夹下面config文件夹里的配置文件)
  • classpath:/(Resources文件夹下面的配置文件))