SpringBoot自动配置原理
# SpringBoot自动配置原理
# 什么是自动配置?
传统的 Spring 里,我们要写很多配置文件(xml 或 @Configuration),才能把数据库、Web、Redis 等功能配好。
而 Spring Boot 的自动配置就是:
👉 启动时自动帮你装好大部分常用的“零件”(Bean),你只要很少的配置,甚至零配置,就能直接用。
比如:
- 项目里有 spring-boot-starter-web → Spring Boot 自动帮你配置 Tomcat + Spring MVC
- 项目里有数据库驱动 → Spring Boot 自动帮你配置 DataSource
# 自动配置做了什么事
简单来说,Spring Boot 启动时会:
程序启动:执行 SpringApplication.run()。
扫描主类:找到 @SpringBootApplication 注解。
开启自动配置:内部包含 @EnableAutoConfiguration。
导入选择器:通过 AutoConfigurationImportSelector 去加载自动配置类。
扫描 classpath(依赖库) 看你用了哪些 jar 包(比如 MySQL、Redis、Web 相关的 jar)。
读取自动配置清单 在 spring-boot-autoconfigure 里有个文件(自动配置的类清单)放在:META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports,里面写着所有可能用到的自动配置类。
条件判断 每个自动配置类都有条件(@ConditionalOnClass、@ConditionalOnMissingBean 等):
- 你项目里有数据库驱动? → 配置 DataSource
- 你没自己写 DataSource? → 用默认的 HikariCP
- 你自己写了? → 优先用你的
- 注册 Bean 把符合条件的 Bean 丢进 Spring IoC 容器,供你直接使用。
# 用图来看原理

# 自动配置类工作流程

Last Updated: 2025/10/22, 08:25:28