Spring Boot 简介与生态定位
本教程共 48 篇 · 第 1 篇 · 更新于 2026-08-13 · 约 6 分钟阅读
本节目标:搞懂 Spring Boot 是什么、它解决什么问题,弄清它和 Spring Framework 的关系,学完你能说清楚「为什么要学 Spring Boot」。
写 Java 应用,曾经很麻烦
先回到十多年前的场景。你想用 Java 写一个 Web 应用,要面对这些事:
- 手动收集依赖 jar 包,还要处理版本冲突
- 写大量 XML 配置,把每个组件「接」起来
- 部署到 Tomcat,把 war 包丢进 webapps 目录
- 改配置要重启,出错只能对着堆栈发呆
这套流程能跑,但很痛苦。开发者的时间大量耗在「搭架子」上,而不是业务本身。
Spring Framework 解决了组件管理的问题,但配置依然繁琐。于是 2014 年,Spring Boot 1.0 发布,目标是让 Spring 应用「开箱即用」。此后 2018 年 2.0、2022 年 3.0,一代代迭代,如今 4.x 已是当前主线。
Spring Boot 是什么
Spring Boot 是 Spring 官方推出的框架,基于 Spring Framework 构建。官方称它是 Spring 平台「有主见的」(opinionated)扩展。
有主见是什么意思?它替你做了大量默认决定:服务器用哪个、配置文件放哪里、日志怎么打。你只要按约定走,它就把活干完。
NoteSpring Boot 不是新语言,也不替代 Spring。它是 Spring 的「一键启动器」,让整个 Spring 生态用起来更省事。
它解决了四大问题
Spring Boot 的核心能力,对应开发者的四类痛点。
自动配置。 依赖一加,配置自动生成。classpath 里有 Web 相关依赖,它就自动配好内嵌服务器和 MVC;有数据库驱动,它就自动配好数据源。默认值不合适,再用配置文件覆盖。
Starter 依赖。 一个 Starter 打包一组配套依赖。想写 Web 接口?加一个 spring-boot-starter-webmvc,Tomcat、Spring MVC 一次齐活,版本还互相兼容。不用再自己一个个挑 jar、对版本。
这就像点菜:你点 Starter 这道菜,厨房(Spring Boot)自动把配菜备齐。
内嵌服务器。 Tomcat 直接嵌进应用里。打包成 jar 后 java -jar 就能跑,不用单独装 Tomcat,不用部署 war 包。
生产就绪。 健康检查、指标监控、外部化配置开箱即用。应用一上线,这些能力就能顶上。
Starter 的命名规则
所有官方 Starter 都遵循同一个命名模式:spring-boot-starter-*,星号是技术类型。常用的有这些:
| Starter | 用途 |
|---|---|
spring-boot-starter-webmvc | Web 应用与 REST 接口(4.x 名称) |
spring-boot-starter-data-jpa | 数据库持久化 |
spring-boot-starter-security | 安全认证 |
spring-boot-starter-test | 单元测试 |
spring-boot-starter-actuator | 生产监控 |
记住这个规律,后面章节遇到新 Starter,一眼就知道它是干什么的。
与 Spring Framework 的关系
Spring Framework 是地基,Spring Boot 是盖好的房子。
Spring Framework 提供依赖注入、事务、MVC 等核心能力,但它不管「怎么把项目跑起来」。Spring Boot 负责组装:选依赖、做配置、起服务。
看一个直观对比。原生 Spring 搭 Web 应用,要引入 spring-web、spring-webmvc 两个依赖,还要手动配 DispatcherServlet;Spring Boot 一个 Starter 就够:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webmvc</artifactId>
</dependency>
Tip教程基线是 Spring Boot 4.1.0,底层是 Spring Framework 7。4.x 里 Web 应用的 Starter 叫
spring-boot-starter-webmvc;旧教程里的spring-boot-starter-web是 3.x 及以前的写法。
两者的定位差异,一句话总结:
| 对比项 | Spring Framework | Spring Boot |
|---|---|---|
| 角色 | 基础框架,提供核心能力 | 快捷装配,负责启动与配置 |
| 配置方式 | 大量 XML / Java 配置 | 自动配置 + 少量覆盖 |
| 服务器 | 外部部署 | 内嵌服务器,随应用启动 |
| 上手成本 | 高,需要搭环境 | 低,生成项目就能跑 |
自动配置是怎么「猜」的
自动配置听起来玄乎,原理其实简单:Spring Boot 扫描 classpath 里的依赖,按条件决定要不要启用某套配置。
入口是 @EnableAutoConfiguration 注解,它通常被组合进 @SpringBootApplication 里。比如你引入了 Web 相关依赖,自动配置就生效:注册 DispatcherServlet、配好视图解析、起内嵌 Tomcat。
你要是自己写了配置类,自动配置会「退位让贤」,以你的配置为准。这也是它安全的原因——它不是魔法,只是有默认值的聪明助手。
学 Spring Boot,要先学 Spring 吗
常见疑问,直接给答案:不用,可以并行。
Spring Boot 的入门路径已经把 Spring 的核心概念封装好了。你先会用(跑起应用、写接口),再慢慢理解背后的依赖注入、Bean 生命周期这些原理,反而更容易学进去。
本教程就是按这个思路排的:前面章节先跑起来,自动配置、Bean 这些原理放在第 6、7 章专门讲。
Spring Boot 不做什么
边界同样重要,它不负责的事有这些:
- 不替你写业务代码,它只负责把应用「架」起来
- 不强制架构,分层、分包方式你定,它只提供约定
- 不含前端,页面渲染靠模板引擎,交互靠你自己写
- 不是微服务框架本身,注册发现、配置中心是 Spring Cloud 的活
理解边界,才知道什么时候该用它,什么时候该找别的工具。
应用场景
Spring Boot 适合哪些项目?
- REST API:前后端分离时,后端服务几乎都用它
- 微服务:独立部署、独立扩展,Spring Boot 天生契合
- 云原生应用:容器化、Kubernetes 部署非常顺滑
- 快速原型:几行代码就能起一个可演示的服务
- 企业级单体:中小团队做内部系统,省心又规范
它的生态定位可以一句话概括:Spring Boot 是 Spring 生态的入口。Spring MVC、Spring Security、Spring Data 这些组件,都以 Starter 的形式挂在 Spring Boot 下面。微服务场景里,Spring Cloud 也建立在 Spring Boot 之上,负责服务注册、配置中心、网关这些分布式能力。
版本基线速览
本教程全部内容按 Spring Boot 4.1.0 校正:
- 版本:Spring Boot 4.1.0(2026-06-10 发布)
- 底层:Spring Framework 7
- Java:17 及以上,推荐 21 LTS
- 命名空间:Jakarta EE 11(
jakarta.*)
旧教程常见 javax.* 和 RestTemplate,在 4.x 里都已弃用。后面章节遇到旧写法,会单独标注版本差异。
小结
搞清「它是什么、解决什么」,比背 API 重要得多。概念落地,动手才不慌。
Spring Boot 解决了 Spring 应用「搭建难、配置繁、部署重」的老问题。它自动配置、打包依赖、内嵌服务器,让应用真正可以「写完了就跑」。下一章,我们把环境备齐。