springboot竟然有5种默认的配置文件加载路径,你未必都知道

发布网友

我来回答

1个回答

热心网友

本文深入探讨了Spring Boot应用中配置文件的加载机制,特别是 application.properties 和 application.yml 文件的配置路径与优先级。首先,通过实践操作展示了在默认未配置这些文件的情况下,Spring Boot应用如何自动启动并使用默认设置。


初识application.properties/.yml文件

在Spring Boot项目中,通常默认情况下并未显式配置 application.properties 或 application.yml 文件。然而,通过在 main/resources 目录下创建并修改这些文件,我们可以观察到应用的端口启动情况发生了变化。例如,创建并配置一个 application.properties 文件后,应用端口从默认的8080切换至9090。


随后,引入了 application.yml 文件,并对比了与 application.properties 文件同时存在时的启动行为,揭示了 application.properties 文件的覆盖性,即在相同目录下, application.properties 文件的配置会优先生效。


文件加载路径探索

深入Spring Boot源码,发现其默认从一系列路径加载配置文件,包括但不限于 ./config/、./config/{@literal *}/、./、classpath:config/ 与 classpath:/。这些路径形成了优先级顺序,其中 classpath:/config/ 及 classpath:/ 被默认用于加载配置文件。


配置文件优先级与路径解析

通过具体的实例验证,我们得出配置文件优先级与路径加载遵循特定顺序,即 file:./config/、file:./config/*/ 、file:./、classpath:/config/、classpath:/,这表明项目根目录下的 config 文件及子目录具有最高优先级。


总结

本文总结了Spring Boot应用中配置文件的优先级与加载路径,关键点包括:



application.properties 文件的配置优先级高于 application.yml 文件。
Spring Boot默认从 classpath:/、classpath:/config/、项目根目录、项目根目录下的 config 目录及子目录等路径加载配置文件。
配置文件的优先级遵循特定顺序:项目根目录下的 config > 项目根目录下的 config* > 项目根目录 > classpath:/config > classpath:/。

文章未展开讨论Spring Boot的扩展配置机制,这将在后续内容中详细解析。希望本文能帮助开发者理解Spring Boot中配置文件的加载与优先级设置,进一步优化应用的配置管理。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com