系统要求 (System Requirements)
Spring Boot 4.0.1 需要至少 Java 17,并兼容至 Java 25(含)。此外还需要 Spring Framework 7.0.2 或更高版本。
构建工具
Spring Boot 为以下构建工具提供显式支持:
| 构建工具 | 版本 |
|---|---|
| Maven | 3.6.3 或更高版本 |
| Gradle | 8.x (8.14 或更高) 以及 9.x |
Servlet 容器
Spring Boot 支持以下嵌入式 Servlet 容器:
| 名称 | Servlet 版本 |
|---|---|
| Tomcat 11.0.x | 6.1 |
| Jetty 12.1.x | 6.1 |
你也可以将 Spring Boot 应用程序部署到任何兼容 Servlet 6.1+ 的容器中。
GraalVM 原生镜像
使用 GraalVM 25 或更高版本,可以将 Spring Boot 应用程序转换为原生镜像 (Native Image)。
你可以使用 原生构建工具 (Native Build Tools) 的 Gradle/Maven 插件,或 GraalVM 提供的 native-image 工具来创建镜像。同样也可以使用 native-image Paketo buildpack。
目前支持以下版本:
| 名称 | 版本 |
|---|---|
| GraalVM Community | 25 |
| Native Build Tools | 0.11.3 |
补充教学
1. 为什么 Spring Boot 4.x 坚持 Java 17+?
Java 17 是一个长期支持版本 (LTS),它引入了 Sealed Classes、Records 等许多现代 Java 特性。Spring 框架 7.x 利用了这些特性来优化性能并简化内部架构。Java 8 和 Java 11 虽然经典,但已无法发挥现代硬件和编译器的最大效能。
2. Servlet 6.1 与虚拟线程 (Virtual Threads)
Java 21 引入了虚拟线程,彻底改变了高并发下的处理模型。Servlet 6.1 和 Spring Boot 4.x 深度适配了这一特性。如果你在 Java 21+ 环境下运行,Spring Boot 可以通过更少的线程处理更多的并发请求,大幅降低内存占用。
3. 原生镜像 (Native Image) 的意义
传统的 Java 程序启动慢且占用内存高。原生镜像在编译期就完成了类加载和初始化,产出的是二进制机器码。
- 启动速度:从秒级提升到毫秒级。
- 内存占用:极大幅度降低。
- 应用场景:非常适合 Serverless 冷启动或资源受限的边端设备。
4. 版本的选择建议
对于新项目,强烈建议直接使用 Java 21 (LTS) 配合 Spring Boot 4.x。这能让你享受到虚拟线程、更先进的 GC 算法以及最优的云原生支持。