在Spring Boot开发中,配置文件的加载顺序一直是开发者关注的焦点。然而,许多开发者可能并不清楚Spring Boot 3.4在配置加载过程中隐藏的一些“潜规则”。这些规则不仅影响配置的优先级,还可能在某些情况下引发难以察觉的问题。本文将深入探讨Spring Boot 3.4配置加载的顺序,揭示那些不为人知的细节,并通过代码示例帮助你更好地理解和应用这些规则。
Spring Boot配置加载的基础顺序
在Spring Boot 3.4中,配置文件的加载顺序遵循一定的规则,这些规则决定了不同配置文件之间的优先级。了解这些基础规则是掌握配置加载机制的第一步。
(一)配置文件的加载路径
Spring Boot会按照以下路径顺序加载配置文件,优先级从高到低:
-
•
file:./config/
:项目根路径下的config
文件夹。 -
•
file:./
:项目根路径。 -
•
classpath:/config/
:类路径下的config
文件夹。 -
•
classpath:/
:类路径。
(二)配置文件的加载方式
除了默认的配置文件路径,Spring Boot还支持通过以下方式加载配置文件:
-
• 命令行参数:通过
--spring.config.location
指定配置文件的位置。 -
• 环境变量:通过
SPRING_CONFIG_LOCATION
环境变量指定配置文件的位置。 -
•
application.properties
或application.yml
:默认配置文件。
如果多个配置文件中存在相同的键,高优先级路径中的值会覆盖低优先级路径中的值。
(三)配置文件的扩展名优先级
Spring Boot支持多种配置文件格式,包括.properties
、.yml
和.yaml
。在加载配置文件时,Spring Boot会按照以下扩展名优