🌱 什么是自动装配
Spring Boot 的自动装配就是:
根据你引入的依赖,自动帮你把相关的 Bean 配好,不用手动写配置。
例如:
你引入了 spring-boot-starter-web,Spring Boot 就会自动帮你配置:
- 内嵌 Tomcat
DispatcherServlet- MVC 相关的 Bean
你什么都不用写,系统就能跑起来。
⚙️ 核心原理
启动类上的注解:
1
它包含:
@ComponentScan(扫描组件)@EnableAutoConfiguration(开启自动配置)
@EnableAutoConfiguration会去加载所有配置类
(这些类都写在各个 jar 包里的
META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件中)Spring Boot 会判断:
- 哪些类在类路径里存在
- 哪些 Bean 你自己没配
- 哪些配置项在
application.yml里定义了
然后“有条件”地加载对应的配置。
🎯 举个例子
DataSourceAutoConfiguration(数据库自动配置类):
1 |
|
意思是:
- 只有项目里有
DataSource相关类, - 而且你没自己写
DataSourceBean, - 它才自动帮你创建一个默认的。
💡 小结
| 关键点 | 含义 |
|---|---|
@SpringBootApplication |
启动入口 |
@EnableAutoConfiguration |
启动自动配置功能 |
@ConditionalOnXXX |
条件判断是否生效 |
spring.factories / AutoConfiguration.imports |
存放所有自动配置类列表 |