配置文件
前言
之前做的SpringBoot项目都是用配置中心来进行配置,一直没有仔细研究SpringBoot的配置文件和加载顺序,本文主要是研究一下使用加载顺序。
一、版本和背景知识
1.SpringBoot版本如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
2.根目录为项目所属目录,类文件目录为src/main/resources.
二、配置文件名称
配置文件名称:springboot默认配置文件名称为application.properties或者application.yml,如果需要多环境支持可以按照application-{profiles}来对配置文件进行命名,其中启用哪个环境配置可以用-Dspring.profiles.active这个参数来指定。
三、配置文件位置
配置文件位置:springboot配置文件可以放置的位置依次为:
- 1) 根目录config文件夹
- 2)根目录
- 3)类文件目录config文件夹
- 4)类文件目录
四、配置查找顺序
假设支持多环境配置并且启动参数设置了-Dspring.profiles.active=dev.
1.配置查找遵循以下规则:
1.1 文件优先级
对于某个配置文件,会依次从以下文件中查找,找到即返回:查找优先级为application-dev->application;
1.2 位置优先级
每个文件都会从以下位置依次查找:
- 1)根目录config文件夹下
- 2)根目录
- 3)类文件目录config文件夹
- 4)类文件目录
1.3 同一个目录下
properties后缀文件优先级高于yml后缀文件
2. 具体查找顺序
2.1 查找application-dev
- 1)从根目录config文件夹下位置查找application-dev.properties文件中配置,然后查找application-dev.yml文件中配置
- 2)从根目录下位置查找application-dev.properties文件中配置,然后查找application-dev.yml文件中配置
- 3)从类文件目录config文件夹下位置查找application-dev.properties文件中配置,然后查找application-dev.yml文件中配置
- 4)从类文件目录下位置查找application-dev.properties文件中配置,然后查找application-dev.yml文件中配置
2.2 查找application
- 1)从根目录config文件夹下位置查找application.properties文件中配置,然后查找application.yml文件中配置
- 2)从根目录下位置查找application.properties文件中配置,然后查找application.yml文件中配置
- 3)从类文件目录config文件夹下位置查找application.properties文件中配置,然后查找application.yml文件中配置
- 4)从类文件目录下位置查找application.properties文件中配置,然后查找application.yml文件中配置
总结
主要是介绍一下Springboot配置文件的位置、命名规则、多环境配置、查找顺序等。其中背后配置加载原理以及查找顺序等在后续会总结和梳理。