一、从类型上来看
默认的优先级是:.properties > .yml > .yaml
SpringBoot使用一个以application命名的配置文件作为默认的全局配置文件。支持properties后缀结尾的配置文件或者以yml/yaml后缀结尾的YAML的文件配置。
以设置应用端口为例
properties文件示例(application.properties):
server.port=80
YAML文件示例(application.yml):
server:
port: 80
两者同时存在情况
假如各配置文件都配置了不同的端口,那么SpringBoot会使用哪一个端口呢?带着疑问试验一下实例
1、在resources目录下创建两个配置文件,一个为application.yml配置文件,设置端口为8010,另一个为application.properties配置文件,设置端口为8020;
2、重启系统;
3、运行结果:
4、 结论:可见在同一目录下,properties配置优先级 > YAML配置优先级。//所以我们在jar包启动时带上properties写法的配置可以覆盖配置
————————————————
二、从位置上来看
springboot默认读取配置文件的位置有四个:
1.项目根目录/config 目录下(file:./config/ (当前项目路径config目录下); )
2.项目根目录下(file:./ (当前项目路径下);)
3.类路径/config目录下:classpath:config/application.yml(classpath:/config/ (类路径config目录下);)
4.类路径下:classpath: (idea默认生成的配置文件存储位置就是类路径下)(classpath:/ (类路径config下).优先级由高到底,高优先级的配置会覆盖低优先级的配置;)
这四个配置文件的优先级:从上往下递减
优先级由高到底,高优先级的配置会覆盖低优先级的配置;
多种目录配置同时存在情况
接下来还是以端口配置为例
1.在resources/目录下配置文件设置端口为8888;
2.在resources/config目录下配置文件设置端口为9999;
3.在项目路径下配置文件设置端口为6666;
4.在项目路径config目录下配置文件设置端口为7777;
最终运行结果:
Tomcat started on port(s): 7777 (http) with context path '/beedo'
Started BeedoApplication in 4.544 seconds (JVM running for 5.335)
因为公司项目中多个文件配置了相同的数据库之类的,所以特来查看相关文章,参考如下文章:特此感谢。仅当作个人笔记使用。
————————————————
原文链接:https://blog.csdn.net/IT_faquir/article/details/80869578
原文链接:https://blog.csdn.net/eden_wang/article/details/128106524