springboot中配置文件的读取顺序

解释:
上图中1234对应的配置文件中端口对应的配置为8090,8091,8092,8093;
上图的1234指的是各自位置的配置文件的优先级从高到底的一个顺序;
项目根路径中config文件夹下的配置文件:就是1所在的配置文件,优先级最高;
项目根路径中配置文件:就是2所在的配置文件,优先级第二;
类路径中config文件夹下的配置文件:就是3所在的配置文件,优先级第三;
类路径中配置文件:就是4所在的配置文件,优先级最低;
他们虽然各自加载的优先级不同,但各自的配置内容是互补的关系:举个例子,这四个配置文件,都对端口做了配置,那么按最高优先级的配置文件的配置为准,其他的比如连接数据库的配置只在4所在的位置的配置文件中配置,那么虽然配置端口只有最高优先级的配置文件起作用,但项目还是把4所在的配置文件中的数据库连接配置给加载了,他们在不重复的配置内容方面是一个互补的关系。
具体体现:
可以看到是8090起作用了,其余的端口配置文件端口配置失效
当把8090注释后,可以看到是8091端口配置起作用了,同理,3和4的配置文件也是一样。
注:
1、如果同一个目录下,有application.yml也有application.properties,默认先读取application.properties。
2、如果同一个配置属性,在多个配置文件都配置了,默认使用第1个读取到的,后面读取的不覆盖前面读取到的。
3、创建SpringBoot项目时,一般的配置文件放置在“项目的resources目录下”
4、app启动时,项目会先从application-dev.properties加载配置, 再从application.properties配置文件加载配置,如果有重复的配置, 则会以application.properties的配置为准。
5、除了配置文件还有启动程序的命令行参数,System.getproperties系统参数,还有环境变量。这三个是在配置文件之前最先执行。
本文转自:https://blog.csdn.net/sinat_37138973/article/details/120046027?spm=1001.2101.3001.6650.9&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-120046027-blog-124123711.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-120046027-blog-124123711.pc_relevant_aa&utm_relevant_index=15
https://blog.csdn.net/weixin_41657954/article/details/122597475?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-122597475-blog-120827405.pc_relevant_multi_platform_featuressortv2dupreplace&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-122597475-blog-120827405.pc_relevant_multi_platform_featuressortv2dupreplace&utm_relevant_index=4
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?