一、前言在使用 Spring Boot 时我们几乎不需要写配置引入 Redis → 自动能用引入 MySQL → 自动连接引入 Web → 自动启动 Tomcat很多人会问❓ Spring Boot 是怎么做到“自动”的这篇文章帮你彻底搞清❗自动装配是怎么工作的不讲复杂源码只讲能用的认知二、一句话核心Spring Boot 自动装配 帮你自动加载一堆配置类三、整体流程必须背下来Spring Boot 启动时做了这几步启动应用 ↓ EnableAutoConfiguration ↓ 加载自动配置类spring.factories / AutoConfiguration.imports ↓ 条件判断ConditionalOnClass 等 ↓ 满足条件 → 加载 Bean四、核心入口EnableAutoConfiguration你项目里其实已经有SpringBootApplication它内部包含EnableAutoConfiguration 这就是自动装配的开关五、自动配置类从哪里来Spring Boot 会去找META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports旧版本是spring.factories里面是这样的org.springframework.boot.autoconfigure.redis.RedisAutoConfigurationorg.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration 这些就是“候选配置类”六、核心机制条件判断重点不是所有配置都会加载会经过一层过滤常见条件注解注解作用ConditionalOnClass类存在才加载ConditionalOnMissingBean没有Bean才创建ConditionalOnProperty配置项满足才加载举例Redis 自动配置ConditionalOnClass(RedisTemplate.class) public class RedisAutoConfiguration { } 含义引入 Redis 依赖 → 生效没引 → 跳过七、完整流程你要能讲出来1. 启动 Spring Boot 2. 扫描 AutoConfiguration.imports 3. 拿到一堆自动配置类 4. 一个个判断条件Conditional 5. 满足 → 加载Bean 6. 不满足 → 跳过八、你怎么验证它在工作实战✅ 方法1打开调试日志yamldebug: true启动时会看到CONDITIONS EVALUATION REPORTPositive matches:RedisAutoConfiguration matched 这就是自动装配在“做判断”✅ 方法2自己写一个自动配置最小DemoConfiguration ConditionalOnClass(name java.util.ArrayList) public class MyAutoConfig { Bean public String testBean() { System.out.println( 自动配置生效); return ok; } } 启动就会打印 自动配置生效九、和你 Android 经验对齐重点 Androidif (hasFeature) { initService(); } Spring BootConditionalOnClass Bean initService() 本质一样环境决定功能是否启用十、面试怎么讲直接给你话术 标准回答中级Spring Boot 自动装配的核心是 EnableAutoConfiguration。启动时会加载 AutoConfiguration.imports 中的配置类。然后通过 Conditional 系列注解进行条件判断满足条件的配置类才会被加载成 Bean从而实现自动配置。 加分点你可以补一句比如 RedisAutoConfiguration 会通过 ConditionalOnClass 判断 RedisTemplate 是否存在。下一篇手写 Starter 进阶ConfigurationProperties 实战支持 application.yml