Spring Boot Starter 原理
候选人小毛在面试快手 P6 时,面试官问道:
"你用过哪些 Spring Boot Starter?"
小毛说:"spring-boot-starter-web、spring-boot-starter-data-redis..."
面试官追问:"Spring Boot Starter 是怎么工作的?"
小毛说:"它会自动配置很多东西..."
面试官:"那 spring-boot-starter 和 spring-boot-autoconfigure 有什么区别?"
小毛答不上来。
【面试官心理】 这道题我用来测试候选人对 Spring Boot Starter 生态的理解。知道怎么用 Starter 的人很多,但知道 Starter 怎么工作的人很少。能说出两个依赖的区别、能自己实现 Starter 的,是 P7 级别的候选人。
一、核心问题 🔴
1.1 问题拆解
第一层:概念
- "Spring Boot Starter 是什么?"
- "spring-boot-starter 和 spring-boot-autoconfigure 有什么区别?"
第二层:结构
- "一个 Starter 的标准结构是什么?"
- "autoconfigure 模块和 starter 模块是什么关系?"
第三层:原理
- "Starter 是怎么触发自动配置的?"
- "为什么添加依赖就能生效?"
1.2 标准回答
P5 回答:两个依赖的区别
1.3 追问升级
追问 1:Spring Boot Web Starter 的依赖结构
追问 2:自定义 Starter 的标准结构
二、面试总结
Spring Boot Starter 的核心价值是"零配置"——用户只需要添加依赖,框架自动完成配置。