SpringBoot自动装配原理
我将用小学生也能理解的比喻 + 源码拆解 + 面试模板三步帮你彻底掌握自动装配原理(附可直接背诵的面试模板)。
一、用"乐高工厂"理解自动配置原理
想象你要组装一台变形金刚,但不想自己一个个找零件。这时候有个智能工厂(Spring Boot)做了三件事:
- 零件仓库:工厂预先打包了所有可能用到的零件(如META-INF/spring下的配置清单)
- 需求检测:工厂会检查你要造什么(检测classpath存在的类)
- 自动组装:根据你的材料箱(pom.xml依赖)自动配送正确零件
比如当你把spring-boot-starter-web
放进材料箱,工厂就会自动配送:
- 发动机(Tomcat)
- 控制台(DispatcherServlet)
- 传动轴(Jackson)
二、源码级三步骤拆解
步骤1:启动触发器
@SpringBootApplication // ← 这是总开关
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
这个注解实际包含三大法宝:
@SpringBootConfiguration(标记这是配置类)
@EnableAutoConfiguration(核心开关)
@ComponentScan(组件扫描)
步骤2:配置清单加载
Spring Boot 3的配置清单位置变更:
META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
示例内容:
org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration
org.