Skip to content
第 41 / 250 章后端⏱ 14 分钟阅读

第 41 章:Spring 全家桶生态总览

学习目标

  • 理解 Spring、SpringBoot、Spring Cloud 的关系
  • 掌握 Spring 生态的全景图,知道每个组件在做什么
  • 明确企业项目为什么选择 SpringBoot

一、为什么 Spring 是 Java 后端的"事实标准"?

如果说 Java 是企业级开发的"通用语言",那 Spring 就是企业级 Java 的"事实标准"。

为什么是 Spring?

维度Spring 的优势
生态完整90% 的企业场景有现成组件
约定优于配置写最少代码,做最多事
活跃社区30+ 年持续维护,Stack Overflow 答案最丰富
企业背书阿里、腾讯、美团、Netflix 等大厂的核心选择
招聘友好掌握 Spring 等于掌握 Java 后端主流技能

二、Spring 家族族谱

三个核心框架的关系

框架定位解决的问题一句话总结
Spring Framework核心框架IoC、AOP、MVC、事务等基础能力Java 后端的"地基"
Spring Boot快速开发脚手架简化配置、内嵌服务器、约定优于配置让 Spring 用起来更简单
Spring Cloud微服务套件分布式系统的常见问题(网关、配置、熔断)微服务架构的"全家桶"

你可以这样类比

  • Spring Framework = 毛坯房(有了基本结构,但还需要装修)
  • Spring Boot = 精装修(拎包入住,约定优于配置)
  • Spring Cloud = 智慧小区(多个房子协同,公共服务齐全)

本教程只讲 Spring Boot,因为它是 90% Java 项目的标准起点。Spring Cloud 是进阶内容,会在后续批次涉及。

三、SpringBoot 核心特性

3.1 Starter 依赖:开箱即用

Spring Boot Starter 是预打包的依赖集合,一行依赖搞定一个完整功能。

xml
<!-- 一个依赖 = Web 完整功能(Tomcat + Spring MVC + Jackson + 验证器...) -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!-- 一个依赖 = 数据访问完整功能(Hibernate + HikariCP + Spring Transaction) -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<!-- 一个依赖 = 安全完整功能(Spring Security + 过滤器链 + BCrypt) -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

没有 SpringBoot 之前,你需要在 pom.xml 写十几行依赖,还经常因为版本冲突熬夜。有了 Starter,一行搞定。

3.2 自动配置:智能推测

传统 Spring 项目需要写大量 XML 配置:

xml
<!-- 传统 Spring MVC 配置 -->
<beans>
    <bean class="org.springframework.web.servlet.DispatcherServlet">
        <property name="..." />
    </bean>
    <mvc:annotation-driven />
    <context:component-scan base-package="com.example" />
    <!-- 还有数据源、事务管理器、视图解析器... -->
</beans>

SpringBoot 通过 @EnableAutoConfiguration 智能推测你需要什么配置:

3.3 内嵌服务器:Jar 直接运行

传统 Java Web 应用:

SpringBoot 应用:

bash
# 一个命令启动
$ java -jar my-app.jar
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/

:: Spring Boot ::               (v3.2.0)

2026-08-12 10:30:45.123  INFO 12345 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port 8080
2026-08-12 10:30:45.456  INFO 12345 --- [           main] com.taskflow.Application                  : Started Application in 2.345 seconds

3.4 Actuator:生产级监控

SpringBoot 内置的生产监控端点:

端点用途示例
/actuator/health应用健康状态数据库连接、磁盘空间
/actuator/info应用基本信息版本号、Git commit
/actuator/metrics性能指标内存使用、线程数
/actuator/env环境变量配置信息(生产环境要关闭)
/actuator/loggers日志级别动态调整日志级别
/actuator/prometheusPrometheus 格式指标对接监控系统

四、SpringBoot 适合做什么?

不适合的场景

  • 极端性能要求(高频交易、游戏服务器)→ 考虑 Go / Rust / C++
  • 前端 UI 渲染 → 用 Vue / React
  • 数据科学 / AI 训练 → Python 生态更适合

五、版本选择

本教程统一使用

组件版本
JDK17 LTS
SpringBoot3.2.x(最新稳定版)
Spring6.1.x
Maven3.9.x
IntelliJ IDEA2024.x

为什么不用最新的 3.3.x?

  • 3.2.x 是当前企业主流,生态兼容性最好
  • 3.3.x 一些第三方库可能还未适配
  • 本教程的代码示例完全兼容 3.2.x 和 3.3.x

六、SpringBoot 生态全景图

本教程覆盖的组件

  • ✅ Spring MVC(Web 层)
  • ✅ MyBatisPlus(数据层)
  • ✅ Spring Data Redis(缓存)
  • ✅ Spring AMQP(RabbitMQ)
  • ✅ Spring Security(安全)
  • ✅ Spring Boot Actuator(监控)
  • ✅ Spring Cloud Gateway(网关)

本教程未覆盖(后续批次)

  • ⏳ Spring Cloud 微服务全套
  • ⏳ Spring WebFlux 响应式
  • ⏳ Spring GraphQL
  • ⏳ Spring Native GraalVM

七、企业项目典型技术栈

一个完整的企业项目包含

技术章节
前端Vue 3 / React / NestJS第二批
Web 层Spring MVC + SpringBoot第 41-46 章
业务层Spring Service + 事务第 47-58 章
数据层MyBatisPlus + HikariCP第 53-58 章
缓存Redis + Spring Cache第 60-61 章
消息队列RabbitMQ / Kafka第 62-63 章
安全Spring Security + JWT第 64-66 章
监控Actuator + Prometheus第 73-74 章
部署Docker + K8s第 78-90 章

八、本章小结

要点关键
Spring 的地位Java 后端事实标准,市场占有率 80%+
三层关系Spring Framework(核心) → Spring Boot(快速开发) → Spring Cloud(微服务)
SpringBoot 核心特性Starter 依赖、自动配置、内嵌服务器、Actuator 监控
版本选择SpringBoot 3.2.x + JDK 17(当前企业主流)
适合场景90% 的企业 Java 后端项目
不适合场景极端性能、前端 UI、数据科学

动手练习

  1. 调研题:访问 Spring 官网,看看 Spring Boot 当前最新版本和 LTS 策略
  2. 思考题:你的目标岗位需要 Spring 哪些技能?去招聘网站搜索 "SpringBoot 高级工程师" 看 10 个 JD
  3. 安装题:安装 IntelliJ IDEA(已有则跳过),安装 SpringBoot 助手插件 Spring Boot Helper

推荐阅读


下一章第 42 章:IoC 控制反转

你已经完成了

  • ✅ 理解 Spring、SpringBoot、Spring Cloud 的关系
  • ✅ 掌握 SpringBoot 核心特性
  • ✅ 明确本教程的技术选型(SpringBoot 3.2 + JDK 17)
  • ✅ 了解完整企业项目的技术栈全景

本站基于 VitePress 构建 · 由 Codebook 团队维护