Springboot同级目录下配置文件优先级,配置文件位置优先级及多环境配置

同级目录下配置文件优先级

通过pom.xml配置文件找到当前项目的父项目的pom配置文件可以直接发现
Springboot同级目录下配置文件优先级,配置文件位置优先级及多环境配置

Springboot同级目录下配置文件优先级,配置文件位置优先级及多环境配置
这里很清晰的看到,配置文件读取是 yml>yaml>properties
所以在同级目录下的配置文件出现冲突时,会按照加载顺序进行覆盖,也就是说读取到的配置内容发生冲突时,按最后读取加载到的为准。
Springboot同级目录下配置文件优先级,配置文件位置优先级及多环境配置
三种配置文件都配置了的情况下发挥作用的就是.properties后缀的文件
Springboot同级目录下配置文件优先级,配置文件位置优先级及多环境配置

配置文件位置优先级

在不同位置的配置文件也具有优先级
Springboot同级目录下配置文件优先级,配置文件位置优先级及多环境配置

Springboot同级目录下配置文件优先级,配置文件位置优先级及多环境配置
为了方便展示,这里的每个配置文件都进行了编号。

1234都有的情况下Springboot同级目录下配置文件优先级,配置文件位置优先级及多环境配置
234
Springboot同级目录下配置文件优先级,配置文件位置优先级及多环境配置
34
Springboot同级目录下配置文件优先级,配置文件位置优先级及多环境配置
可以明显的发现config里的配置文件同级时更优先。
同时官网的描述是这样的
Springboot同级目录下配置文件优先级,配置文件位置优先级及多环境配置

多环境配置

在开发中可能有研发,测试等环境,不同环境可能使用的配置不同。所以就需要多套的环境配置。
.properties.yml都可以做到多套环境配置,但是这里只展示简单也常用的基于yaml的多套环境配置

Springboot同级目录下配置文件优先级,配置文件位置优先级及多环境配置
这里对这简单的配置文件进行讲解,---用来对配置进行切块,每一块都是自己一套配置,而spring.profiles=dev则是对该套配置取名为dev,而spring.profiles.active=dev这表示**的是名为dev的配置,所以这里使用的端口号是8081.