Spring Boot中有2种配置文件类型:application.properties, application.yml
Spring Boot 的配置文件存放位置有4个
放在当前项目的根目录下
放在当前项目的config目录下
放在项目的resources目录下
放在项目的resources目录的config子目录下
1:同一位置不同格式配置文件的加载顺序
如果在同一个目录下同时存在application.yml 和 application.properties 默认使用读取application.properties,如果在二个配置中同时配置了同一个配置属性,spring boot使用第一个读取的配置属性,后面读取到的属性值不覆盖前面已经读取到的属性值
测试:
在resources/config下创建2个配置文件application.yml 和 application.properties 同时设置server.port, 但值不一样,看启动时spring boot选择的是哪个端口号
配置文件设置:
配置文件 | 配置参数 |
---|---|
application.properties: | server.port=8886 |
application.yml: | server.port=8887 |
启动spring boot:
发现启动的是8886端口,所以application.properties的优先级高于application.yml
2:不同位置配置文件的加载顺序
1:在项目根目录下新建配置文件application.properties和 application.yml并设置参数
配置文件 | 配置参数 |
---|---|
application.properties: | server.port=8889 |
application.yml: | server.port=8888 |
启动spring boot:
所以根目录下的配置文件优先级高于resource下的配置文件
2:在项目根目录下新建目录config,然后再目录中新建配置文件application.properties和 application.yml
配置文件 | 配置参数 |
---|---|
application.properties: | server.port=8891 |
application.yml: | server.port=8890 |
启动spring boot:
所以根目录下的config目录中的配置文件优先级高于根目录下的配置文件
3:在resource下新建目录config,然后再目录中新建配置文件application.properties和 application.yml并设置参数
配置文件 | 配置参数 |
---|---|
application.properties: | server.port=8893 |
application.yml: | server.port=8892 |
启动spring boot:
所以resource目录下的config目录中的配置文件优先级高于resource下的配置文件
3:总结
当前项目的config目录下 > 放在当前项目的根目录下 > 放在项目的resources目录的config子目录下 > 放在项目的resources目录下
优先级 | 配置文件位置 |
---|---|
优先级最高: | Config/ application.properties;Config/ application.yml |
优化级第二高: | / application.properties;/ application.yml |
优先级第三高: | Resources/ config / application.properties;Resources/ config / application.yml |
优先级最低: | Resources/ application.properties;Resources/ application.yml |