Spring Boot 启动注解分析

Spring Boot 启动注解分析

💡 原文日文,约11000字,阅读约需27分钟。
📝

内容提要

Spring Boot是Java开发领域的标配之一,通过@EnableAutoConfiguration注解实现自动化配置。自动化配置的入口是AutoConfigurationImportSelector类的process方法,根据条件判断加载候选的自动化配置类。加载来源包括自定义starter和Spring Boot自带的自动化配置类。加载完成后,根据条件注解来决定配置类是否生效。

🎯

关键要点

  • Spring Boot 是 Java 开发领域的标配,通过 @EnableAutoConfiguration 注解实现自动化配置。
  • 自动化配置的入口是 AutoConfigurationImportSelector 类的 process 方法,根据条件判断加载候选的自动化配置类。
  • 加载来源包括自定义 starter 和 Spring Boot 自带的自动化配置类。
  • 自动化配置的关键注解是 @SpringBootApplication,其中 @EnableAutoConfiguration 表示开启自动化配置。
  • AutoConfigurationImportSelector 类负责加载自动化配置类,主要通过 process 方法实现。
  • getAutoConfigurationEntry 方法用于获取候选的自动化配置类,来源包括 spring.factories 文件和 Spring Boot 自带的配置类。
  • isEnabled 方法判断自动化配置是否开启,可以通过 application.properties 配置关闭。
  • removeDuplicates 方法用于移除候选自动化配置类中的重复项。
  • getExclusions 方法获取被排除的自动化配置类,可以从注解的 exclude 属性和配置文件中获取。
  • checkExcludedClasses 方法检查被排除的类是否有效,若无效则抛出异常。
  • removeAll 方法从候选配置类中移除被排除的类。
  • filter 方法根据项目依赖判断哪些自动化配置类生效,依赖关系存储在 spring-autoconfigure-metadata.properties 文件中。
  • 获取的过滤器包括 OnClassCondition、OnWebApplicationCondition 和 OnBeanCondition,用于判断自动化配置类的生效条件。
  • fireAutoConfigurationImportEvents 方法触发自动化配置类导入事件,完成自动化配置的加载。
➡️

继续阅读