第 41 章:Spring 全家桶生态
学习目标
- 知道 Spring / SpringBoot / Spring Cloud 的关系
- 知道 SpringBoot 在企业项目里是干嘛的
- 选对版本(JDK 17 + SpringBoot 3.2)
一、三层关系
| 名称 | 定位 | 解决啥 |
|---|---|---|
| Spring Framework | 核心框架 | IoC、AOP、MVC、事务 |
| Spring Boot | 快速开发 | 简化配置、约定优于配置、一键启动 |
| Spring Cloud | 微服务套件 | 网关、配置中心、熔断、链路追踪 |
一句话:Spring Boot = 简化开发的 Spring,Spring Cloud = 微服务套件。
本教程只讲 Spring Boot。90% 的 Java 后端项目用它。
二、Spring Boot 四大特性
2.1 Starter 依赖(一行搞定一个功能)
xml
<!-- 一个依赖 = Web 完整功能(Tomcat + MVC + Jackson + 验证器) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 一个依赖 = 数据访问(JPA + HikariCP + 事务) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>2.2 自动配置(智能推测)
java
@SpringBootApplication // 等于 @Configuration + @EnableAutoConfiguration + @ComponentScan
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}启动时,Spring Boot 扫描 classpath,看到 DispatcherServlet 就配 MVC,看到 DataSource 就配数据源,看到 RedisTemplate 就配 Redis。
2.3 内嵌服务器(一个 Jar 跑起来)
bash
# 传统:打 WAR → 部署到 Tomcat → 启动 Tomcat
# Spring Boot:打 FAT JAR → 直接 java -jar
$ java -jar my-app.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.2.0)2.4 Actuator(生产级监控)
yaml
management:
endpoints:
web:
exposure:
include: health,info,metrics,prometheus| 端点 | 用途 |
|---|---|
/actuator/health | 健康检查(数据库/磁盘) |
/actuator/metrics | 性能指标 |
/actuator/prometheus | Prometheus 格式 |
三、版本选择
| 组件 | 版本 |
|---|---|
| JDK | 17 LTS |
| Spring Boot | 3.2.x |
| Maven | 3.9.x |
| IntelliJ IDEA | 2024.x |
⚠️ 坑 1:Spring Boot 2.x 已 EOL,不要再用。Spring Boot 3.x 要求 JDK 17+。
四、不适合 Spring Boot 的场景
| 场景 | 用啥 |
|---|---|
| ❌ 极端性能(高频交易) | Go / Rust |
| ❌ 前端 UI | Vue / React |
| ❌ 数据科学 | Python |
五、企业项目典型技术栈
前端(Vue/React)
↓ HTTP
Spring Boot(本教程重点)
↓
MySQL + Redis + RabbitMQ + Elasticsearch
↓
部署:Docker + K8s
↓
监控:Prometheus + Grafana六、本章小结
| 要点 | 关键 |
|---|---|
| 三层关系 | Spring(核心) → Spring Boot(简化) → Spring Cloud(微服务) |
| 版本 | JDK 17 + Spring Boot 3.2.x |
| 核心特性 | Starter 依赖、自动配置、内嵌服务器、Actuator |
| 适合场景 | 90% 企业 Java 后端 |
动手练习
- 去 Spring Initializr 生成一个 demo 项目,跑起来
- 访问
/actuator/health看返回
下一章:第 42 章:IoC 控制反转与 DI →