SpringBoot配置文件加载顺序

面试的时候面试官问了我一个问题,bootstrap.yml 和application.yml文件在一个文件夹中的加载顺序。

        正确顺序是bootstrap.yml先加载,基于这个我又联想了很多,如果这四种配置文件在一个文件夹中他们的加载顺序是什么样的。仔细了解过后,我得出了下面的答案:

  1. 首先,Spring Boot会尝试加载 bootstrap.propertiesbootstrap.yml 文件。这些文件主要用于外部配置,并且会在任何其他配置文件之前被加载。通常情况下,bootstrap 配置文件用于配置应用程序上下文之外的属性,例如连接到远程配置服务器的属性。

  2. 接下来,Spring Boot会加载 application.propertiesapplication.yml 文件。这些文件包含了应用程序的一般配置属性。它们覆盖了 bootstrap 配置文件中相同属性的值。

  3. 如果存在多个 application 配置文件,它们将按照以下顺序进行加载:

    • 具体的配置文件(例如:application-dev.properties 或 application-prod.properties)将按照指定的配置文件顺序加载。
    • 通用配置文件(例如:application.properties 或 application.yml)将在最后加载,覆盖之前已经加载的配置。

总结起来,加载顺序为:bootstrap.properties>bootstrap.yml> application.properties > application.yml>具体的配置文件 > 通用配置文件。

需要注意的是,这里提到的文件名和文件格式仅作为示例,实际的文件名和格式可以根据项目的需求进行自定义。同时,Spring Boot还支持使用环境变量、命令行参数等方式来配置应用程序,这些配置方式可以覆盖配置文件中的属性值。