SpringBoot配置文件加载顺序
面试的时候面试官问了我一个问题,bootstrap.yml 和application.yml文件在一个文件夹中的加载顺序。
正确顺序是bootstrap.yml先加载,基于这个我又联想了很多,如果这四种配置文件在一个文件夹中他们的加载顺序是什么样的。仔细了解过后,我得出了下面的答案:
-
首先,Spring Boot会尝试加载
bootstrap.properties
或bootstrap.yml
文件。这些文件主要用于外部配置,并且会在任何其他配置文件之前被加载。通常情况下,bootstrap
配置文件用于配置应用程序上下文之外的属性,例如连接到远程配置服务器的属性。 -
接下来,Spring Boot会加载
application.properties
或application.yml
文件。这些文件包含了应用程序的一般配置属性。它们覆盖了bootstrap
配置文件中相同属性的值。 -
如果存在多个
application
配置文件,它们将按照以下顺序进行加载:- 具体的配置文件(例如:
application-dev.properties
或application-prod.properties
)将按照指定的配置文件顺序加载。 - 通用配置文件(例如:
application.properties
或application.yml
)将在最后加载,覆盖之前已经加载的配置。
- 具体的配置文件(例如:
总结起来,加载顺序为:bootstrap.properties>
bootstrap.yml
> application.properties
> application.yml>
具体的配置文件 > 通用配置文件。
需要注意的是,这里提到的文件名和文件格式仅作为示例,实际的文件名和格式可以根据项目的需求进行自定义。同时,Spring Boot还支持使用环境变量、命令行参数等方式来配置应用程序,这些配置方式可以覆盖配置文件中的属性值。