小崔已经跑通了第一个 Spring Boot 应用,但看着
pom.xml里那一行行没有version的依赖,他疑惑:"这些版本到底是谁在管?" 架构师白歌说:"Starter 是 Spring Boot 的'依赖套餐',BOM 是'版本锁'。这一章,你将理解为什么引入一个 Starter 就能获得全套功能,以及版本号冲突从此成为历史。"
章节导读:起步依赖与版本管理
本章定位
本章解决的核心问题:Spring Boot 如何通过 Starter 和 BOM 实现依赖的'一键引入'和'版本统一',避免传统 Maven 项目中手动对齐版本号的痛苦。
学习路线图
学习顺序说明:先理解 Starter 是什么、它包含哪些依赖、传递依赖如何工作 → 再深入 BOM 和父 POM 的机制,理解"为什么不需要写 version"。
文件关系说明
| 文件 | 一句话角色 |
|---|---|
起步依赖.md | Starter 是预定义的依赖描述符,引入一个即可获得全套兼容依赖,如 spring-boot-starter-web 自动带入 Spring MVC + Tomcat + Jackson。 |
BOM 版本管理.md | spring-boot-dependencies BOM 通过 <dependencyManagement> 统一锁定所有 Starter 的版本号,父 POM 继承让项目零配置获得版本管理。 |
知识图谱
核心逻辑:spring-boot-starter-parent 引入 spring-boot-dependencies BOM → BOM 通过 <dependencyManagement> 锁定所有 Starter 及其传递依赖的版本 → 开发者在 pom.xml 中引入 Starter 时无需写 version → 传递依赖自动解析,获得全套兼容 JAR。
与上下章的衔接
上一章回顾:你亲手创建了第一个 Spring Boot 项目,看到了 pom.xml 中一行行没有 version 的依赖。
下一章预告:本章回答了"这些版本是谁管理的"。下一章「自动配置原理」将揭示 Starter 引入的 JAR 包如何触发自动配置——从 @EnableAutoConfiguration 到 spring.factories 再到条件评估的完整流水线。