admin管理员组

文章数量:1441221

Spring Boot加载外部配置文件的流程是怎样的呢

Spring Boot加载外部配置文件的流程可以大致归纳为以下几个步骤:

  1. 启动流程开始:
    • 当Spring Boot应用程序启动时,会按照其设计好的启动流程进行初始化。
  2. 加载bootstrap.ymlbootstrap.properties(如果适用):
    • 如果你的应用是一个Spring Cloud应用,并且使用了Spring Cloud Config,那么首先会加载bootstrap.ymlbootstrap.properties中的配置。这些配置主要用于连接到远程的配置服务器(如Spring Cloud Config Server)。
    • bootstrap.ymlbootstrap.properties的加载优先级高于application.ymlapplication.properties
  3. 加载系统配置文件:
    • 在加载完bootstrap配置文件之后(如果有的话),Spring Boot会加载系统级别的配置文件,这些文件通常位于项目的src/main/resources目录下,文件名通常为application.ymlapplication.properties
  4. 通过SPI机制和消息广播机制加载用户自定义配置文件:
    • 在加载系统配置文件之后,Spring Boot会使用SPI(Service Provider Interface)机制和消息广播机制来加载用户自定义的配置文件。这个过程中,ConfigFileApplicationListener类起到了关键作用。它会在Spring Boot启动过程中被实例化,并监听ApplicationEnvironmentPreparedEvent事件来触发配置文件的加载。
  5. 具体配置文件加载过程:
    • 在事件触发后,ConfigFileApplicationListener会根据配置的搜索路径和文件名称规则(如文件名前缀、后缀等)来搜索并加载用户自定义的配置文件。这些配置文件可以是YAML格式(.yml.yaml)或属性格式(.properties)。
  6. 配置文件的合并和覆盖:
    • 如果在多个位置发现了同名的配置文件(如既在bootstrap目录下又在resources目录下),Spring Boot会按照一定的优先级来合并这些配置。通常,bootstrap目录下的配置优先级更高。
    • 另外,用户还可以通过命令行参数、环境变量或系统属性等方式来覆盖配置文件中的属性。
  7. 属性注入和绑定:
    • 加载完配置文件后,Spring Boot会将配置文件中的属性注入到应用程序的各个组件中。这可以通过多种方式实现,如使用@Value注解直接注入单个属性值,或使用@ConfigurationProperties注解将一组属性绑定到一个配置类上。
  8. 启动流程继续:
    • 完成配置文件的加载和属性注入后,Spring Boot的启动流程将继续进行,包括创建应用上下文、初始化Bean等。

总结来说,Spring Boot加载外部配置文件的流程涉及多个步骤,包括加载bootstrap配置文件、系统配置文件、用户自定义配置文件,以及配置文件的合并、覆盖和属性注入等。这个过程中,Spring Boot充分利用了其强大的扩展性和灵活性,支持从多种来源和格式加载配置,并允许用户通过多种方式覆盖和修改默认配置。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-05-25,如有侵权请联系 cloudcommunity@tencent 删除springboot配置系统注解

本文标签: Spring Boot加载外部配置文件的流程是怎样的呢