内部配置文件
我们先创建一个spring boot项目,项目结构如下:
八个配置文件的内容如下:
1.D:\job\demo\src\main\resources\config\application.properties
server.port=10003
2.D:\job\demo\src\main\resources\config\application.yml
server:
port: 20003
3.D:\job\demo\src\main\resources\application.properties
server.port=10004
4.D:\job\demo\src\main\resources\application.yml
server:
port: 20004
5.D:\job\demo\config\application.properties
server.port=10001
6.D:\job\demo\config\application.yml
server:
port: 20001
7.D:\job\demo\application.properties
server.port=10002
8.D:\job\demo\application.yml
server:
port: 20002
启动后效果如下:
从日志可以看出5的配置文件优先级最高,为了测试优先级,我们先把5删了再启动,看这次启动的端口是多少?
启动端口变成了20001,我们再删除此文件,继续启动测试。
结论:内部配置文件的优先级是 5 6 7 8 1 2 3 4.
外部配置文件
项目结构和内容和上面保持一致,在D:\job
下面创建了一个application.properties文件,文件内容为server.port=1111
;把上面的项目使用mvn clean package spring-boot:repackage
命令打成jar包,使用java -jar demo/target/demo-0.0.1-SNAPSHOT.jar --spring.config.location=D:\job\application.properties
启动项目,发现启动的端口是1111.
所以如果我们指定使用外部配置文件,那么它的优先级最高,高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置。