SpringBoot项目启动时配置文件的加载顺序和动态指定外部配置文件
我们都知道springboot启动会扫描一下位置的application.properties或者application.yml作为默认的配置文件, 今天来总结下SpringBoot的配置文件的加载顺序, 以及如何在jar包启动或者idea中启动springboot项目时如何动态指定配置文件
配置文件的优先级
配置文件路径的加载顺序
- 工程根目录:./config/
- 工程根目录:./
- classpath:/config/
- classpath:/
ps: classpath: 即放在resources里面
properties和yml的加载顺序
bootstrap.properties优先于application.properties
properties优先于yml
顺序为properties>yaml>yml
profile文件的加载顺序
优先加载带profile的配置文件
jar包外部的application-{profile}.propertie或application.yml(带spring.profile)配置文件
jar包内部的application-{profile}.propertie或application.yml(带spring.profile)配置文件
其次加载不带profile的配置文件
jar包外部的application.propertie或application.yml(不带spring.profile)配置文件
jar包内部的application.propertie或application.yml(不带spring.profile)配置文件
加载的优先级顺序是从上向下加载,并且所有的文件都会被加载,高优先级的内容会覆盖底优先级的内容,形成互补配置
SpringBoot项目Jar包启动时指定外部配置文件
java -jar test.jar --spring.config.name=test1 --spring.config.location=D:/config/test/
如果需要指定多个目录或者文件, 逗号分开即可,并且需要注意的时,如果目录,目录结束的/不能省略。