本节摘要:Spring Boot 是 Java 企业级后端的"事实标准"。本节讲清它是什么、解决什么问题(配置地狱)、核心特性(自动配置、起步依赖、内置服务器),以及它和传统 Spring 的关系。
阅读完本节,你应当能够:
"Java 写后端为什么都用 Spring Boot?"——因为它把 Java 后端的"麻烦"都包办了。传统 Spring 配置复杂(XML 一堆),Spring Boot 用"自动配置"解决:你写个注解,它帮你把组件接好。开箱即用,是企业级项目选它的第一理由。

| 特性 | 说明 |
|---|---|
| 自动配置 | 按依赖自动装配组件 |
| 起步依赖 | 一个依赖引入一组功能 |
| 内置服务器 | 不用单独装 Tomcat |
Spring Boot 是 Spring 的"便捷版"——继承了 Spring 生态(安全、数据、云),但把配置简化到极致。
💡 关键直觉:Spring Boot 卖点是"省配置"——传统 Spring 花一周配环境,Spring Boot 一天跑起来。省下的时间都用来写业务。
| 场景 | 适合 |
|---|---|
| 企业级业务系统 | 非常适合 |
| 微服务 | 适合 |
| 快速原型 | 偏重但可用 |
| 极轻量服务 | Node.js 更轻 |
Spring Web:Web 开发 Spring Data:数据访问 Spring Security:安全 Spring Cloud:微服务
⚠️ 常见误区:以为 Spring Boot 是独立语言。它还是 Java——只是把 Java 后端开发"标准化"了。会 Java,就能学 Spring Boot。
认识它了,下一节搭环境——环境搭建与项目初始化。
Q1:Spring Boot 和 Spring 到底是什么关系?
Spring 是一个庞大的框架家族(核心、MVC、数据、安全、云等),功能强大但配置繁琐——早期用 XML 写一大坨配置才能跑起来。Spring Boot 是建立在 Spring 之上的"自动化层":它把常用配置内置成默认值(自动配置)、把依赖打包成"起步依赖"、内置了 Web 服务器,让你一个注解一个启动类就能跑起来。所以 Spring Boot 是 Spring 的"快速上手版",它没有脱离 Spring,而是让 Spring 更好用。
Q2:"约定优于配置"是什么意思?
意思是"框架给你一套默认约定,你遵守约定就几乎不用写配置"。比如:约定启动类放在包根目录,框架就能自动扫描到所有组件;约定配置文件叫 application.properties,框架就会自动读取;约定内嵌了 Tomcat,你就不用单独装。遵循约定,你的项目最简配置就能运行;需要改默认行为时,再通过配置覆盖。这个理念大大降低了上手门槛。
Q3:自动配置到底"自动"在哪?
当你在项目里引入某个依赖(比如数据库驱动),Spring Boot 检测到它,就自动创建对应的默认组件(比如数据源、JPA 的 Repository 支持)。你不需要写一行配置,就能用这些组件。它的机制是条件装配——"如果类路径上有某某类,就自动配置某某 Bean"。想深入了解可以去读自动配置类的源码和条件注解,入门阶段只需要知道"引入依赖后,很多事框架替你做了"。
Q4:为什么企业级项目爱用 Spring Boot?
因为它在三个维度上都很成熟:生态(Spring 家族几十年积累,什么需求都有对应组件)、规范(分层架构清晰,团队协作有章可循)、运维(打包成可执行 JAR,部署简单,微服务体系完善)。选型没有绝对的对错,但企业里"用 Spring Boot 不会踩大坑"是共识。
动手建议:去官网的 Spring Initializr(项目生成器)页面,选一个 Spring Boot 版本和 Web 依赖,生成一个空项目并下载。打开它,观察自动生成的项目结构、配置文件和启动类——这就是 Spring Boot 的"骨架"。然后尝试加一个 Spring Data JPA 依赖,重新构建,你会发现 IDE 里自动多了一堆可用的类。亲手体会"加依赖就自动获得能力",比读十遍"自动配置"都直观。
理解自动配置最直接的办法,是亲手观察它"动了什么手脚"。建议做这样一个实验:
第一步,用项目生成器建一个只勾选 Web 依赖的空项目,启动它。注意观察启动日志里出现的一行行"自动配置"信息——框架在启动阶段扫描依赖、逐一装配组件,这些日志就是它干活留下的脚印。
第二步,在项目里新增一个最简单的配置类,并给其中的方法加一个特殊注解,让 Spring 在启动时执行它,打印一句"项目启动成功"。这个实验让你看到:你自己定义的组件,也是通过同一套机制被框架发现和管理的。此时你应该能体会到,框架不是你写代码的旁观者,而是"扫描你、注册你、管理你"的容器。
第三步,去掉 Web 依赖(或注释掉),重新启动。观察启动失败或行为变化——你会发现 Web 能力是依赖注入后才有的。这个对比实验,把"依赖决定能力"讲得非常直观。
第四步,查看项目里自动生成的配置文件,尝试修改端口号,重启后访问新的端口。你会看到,遵循约定的配置生效了,而这一切没有写一行 Java 代码。
做完这四个实验,你对"自动配置、起步依赖、约定优于配置"这三个特性,就从"听说过"变成"亲眼见过"了。带着这份体感去学后面的注解和组件,你会发现它们都是在同一个容器机制里各司其职。
Spring Boot 的三大特性是同一个理念的三面:自动配置解决"装好即能用",起步依赖解决"一键引入功能",内置服务器解决"不用管运行环境"。亲眼看一次启动日志,比背十条特性更有用。