2025 年 11 月 21 日,Spring Boot 4.0 正式发布,标志着 Java Web 应用开发迈入全新阶段。该版本基于 Spring Framework 7.0 构建,聚焦云原生性能优化、开发体验升级与生态适配调整,同时宣布 3.x 系列即将进入维护期。
在SpringBoot官网可以看到4.0版本了

基于 Spring Framework 7.0,全面支持 Java 25(含虚拟线程优化)。核心新特性包括:HTTP Service Clients 简化远程调用;原生 API 版本管理;全面采用 JSpecify 空安全体系(默认非空,编译期防 NPE);关键依赖升级至 Jackson 3.0、Tomcat 11、Hibernate 7.1 等;支持 Gradle 9;Redis 静态主从配置;移除 Undertow。
1.更新内容
(1)Spring Framework 7.0
从Spring Boot 4.0-SNAPSHOT开始,至少需要Java 17支持,还需要 Spring Framework 7.0.0-SNAPSHOT 或更高版本。同时需要maven 3.6.3或更高的版本,Gradle 7.6.4或更高的版本。
(2)GraalVM原生镜像深度集成
Spring Boot 4.0将GraalVM原生编译从实验特性升级为正式生产级支持,通过AOT(Ahead-of-Time)编译实现冷启动时间与内存占用的数量级优化:
- 冷启动效率:传统JVM模式下500ms启动的微服务,编译为原生镜像后降至50ms以内,适用于Serverless场景突发流量响应
- 内存占用削减:典型微服务堆内存从2GB缩减至120MB级别,资源成本降低80%以上
- 技术适配:通过@NativeHint注解显式配置反射与资源加载规则,官方提供Maven插件自动化分析依赖项兼容性
不过使用时,需要引入额外依赖项:
<dependency>
<groupId>org.springframework.experimental</groupId>
<artifactId>spring-native</artifactId>
<version>0.12.0</version>
</dependency>
(3)虚拟线程支持
于JDK 21的虚拟线程特性,Spring Boot 4.0重构线程池模型以支持百万级并发:
- 异步处理优化:在支付网关场景中,每秒请求处理量(RPS)从1.2万提升至8.5万,CPU占用率下降40%
- 无缝启用:通过spring.threads.virtual.enabled=true全局启用,原有@Async注解无需修改
- 监控增强:Actuator新增/virtual-threads端点,实时监控线程状态与阻塞事件
// 全局启用虚拟线程
spring:
threads:
virtual:
enabled: true
// 异步任务无需修改
@Async
public CompletableFuture<String> fetchData() {
return CompletableFuture.completedFuture("Data from virtual thread");
}
(4)API版本控制
Spring Boot 4.0版本中RequestMapping引入了version进行版本控制,可以优雅管理多版本API。
@RestController
@RequestMapping("/api/user")
public class UserController {
@GetMapping(version = "1")
public UserV1 getUserV1() { /* 旧版逻辑 */ }
@GetMapping(version = "2")
public UserV2 getUserV2() { /* 新版逻辑 */ }
}
(5)声明式HTTP客户端
取代Feign的HttpExchange注解,代码量减少60%。
// 声明式HTTP接口
public interface UserService {
@GetExchange("/users/{id}")
User getUser(@PathVariable("id") Long id);
}
// 自动代理注入
@Bean
HttpServiceProxyFactory proxyFactory(RestClient.Builder builder) {
return HttpServiceProxyFactory.builderFor(RestClientAdapter.create(builder.build())).build();
}