外观
一句话答案
Starter 是依赖+自动配置的封装,引入依赖后 spring.factories 注册自动配置类,@Conditional 条件过滤按需加载。
核心要点
原理: 1.引入starter依赖 → 2.spring.factories注册AutoConfiguration类 → 3.@Conditional条件判断 → 4.自动创建Bean
自定义Starter: 创建 autoconfigure 模块 + starter 模块,在 META-INF/spring.factories 注册
追问与易错
追问方向:
- spring-boot-starter 和 -xxx 区别?
- spring.factories 在 Boot 3 还能用吗?
- 怎么排查自动配置不生效?
易错点:
- ❌ 引入 Starter 所有 Bean 都创建——@Conditional 会过滤
- ❌ 混淆 Boot 3 和 2 的发现机制
💡 记忆锚点
Starter = 即插即用的配件包:引入依赖(插上U盘) -> spring.factories自动注册配置类(驱动自动安装) -> @Conditional按需加载(只装你需要的驱动)。自定义Starter就是自己造一个配件包给别人用。