Spring Boot 自动配置(Auto-configuration)的核心原理

Spring Boot 自动配置(Auto-configuration)的核心原理是基于 @EnableAutoConfiguration 注解和 SpringFactoriesLoader 机制 。它会扫描类路径(Classpath)下的 META-INF/spring.factories 或 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 文件,结合 条件注解 (如 @ConditionalOnClass、@ConditionalOnMissingBean)智能推断依赖,从而自动配置并注册相应的 Bean 到 IOC 容器中。 核心原理详解

  1. 启动入口:@SpringBootApplication

    • 这是一个复合注解,核心在于其中的 @EnableAutoConfiguration。
  2. 核心注解:@EnableAutoConfiguration

    • 该注解通过 @Import(AutoConfigurationImportSelector.class) 导入自动配置选择器。
  3. 自动配置加载:AutoConfigurationImportSelector

    • 它会利用 SpringFactoriesLoader 读取所有 Starter 类路径下 META-INF/spring.factories 或 .imports 文件中定义的自动配置类(AutoConfiguration)。
  4. 智能筛选:条件注解 (@Conditional)

    • 自动配置类并非全部生效。Spring Boot 会根据 @Conditional 系列注解进行筛选,例如:

      • @ConditionalOnClass:Classpath 下存在指定类时才生效。

      • @ConditionalOnMissingBean:容器中不存在该 Bean 时才生效(实现用户配置优先)。

      • @ConditionalOnProperty:配置文件中存在指定属性时才生效。

工作流程总结

  1. 加载候选者 :启动时扫描所有 Jar 包的 META-INF/spring.factories。

  2. 过滤生效配置:结合条件注解,判断环境是否满足生效条件。

  3. 实例化 Bean:将生效的自动配置类中的 Bean 注册到 Spring IOC 容器。 这种机制允许开发者只需依赖 Starter,无需复杂的 XML 或 Java 配置即可快速启动功能。

相关推荐
步行cgn3 小时前
Spring 全注解开发详解
java·后端·spring
IT_陈寒6 小时前
SpringBoot启动慢得像蜗牛?原来是这个配置在捣鬼
前端·人工智能·后端
不才不才不不才8 小时前
Spring 源码系列(29): 20 道高频面试题源码级解析合集
java·后端·spring
索隆zoro8 小时前
Army 的可插拔架构:army-jdbc 与方言模块
java·后端
小蒜学长9 小时前
校园社团招新网站的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·校园社团招新网站
蜗牛互联网10 小时前
从Barclays扩大Claude部署看受监管软件工程的责任重分配
java·大数据·人工智能·后端·软件工程
周杰伦fans11 小时前
C#对话摘要降低Token消耗
人工智能·后端·c#
做系统的大强12 小时前
脚本说 PASS、OS 读全零 —— 到底是谁在撒谎?
后端·操作系统
code2cat12 小时前
【随笔】MCP资源更新订阅:通知到达以后,Agent怎样刷新旧资料
java·后端·开发工具·ai agent·mcp
Harvil_14 小时前
任务跑一半,API 突然报“对话超长“断流:我给 Agent 修的紧急逃生通道
后端