Spring Boot 3.x要求Java 17+并全面迁移到Jakarta EE 9+命名空间,原生镜像支持GA,弃用RestTemplate而推荐WebClient,集成Spring Security 6.x强化安全与OAuth2。

Spring Boot 3.x 是 Spring 生态面向 Java 17+ 和 Jakarta EE 9+ 的重要升级版本,核心变化围绕现代化、安全性和模块化展开。它不再支持 Java 16 及以下版本,最低要求 Java 17(LTS),并全面迁移到 Jakarta EE 9+ 命名空间(如 jakarta.* 替代 javax.*)。
全面迁移至 Jakarta EE 9+
所有 Servlet、JPA、Validation、Transaction 等 API 包名从 javax.* 升级为 jakarta.*。这意味着:
- 旧版
javax.servlet.http.HttpServlet需改为jakarta.servlet.http.HttpServlet - Spring Data JPA 实体注解如
@Entity、@Column现来自jakarta.persistence.* - Bean Validation 使用
jakarta.validation.*(如@NotBlank),且 Hibernate Validator 6.2+ 成为默认实现 - 若项目依赖第三方库仍使用
javax.*,需确认其已发布 Jakarta 兼容版本,否则将出现类加载冲突或编译失败
原生镜像支持(GraalVM Native Image)正式 GA
Spring Boot 3.1 起,对 GraalVM 原生编译的支持进入生产就绪状态,显著提升启动速度与内存效率:
- 通过
spring-boot-starter-aot模块提供 AOT(Ahead-of-Time)编译能力 - 构建时自动分析 Bean 初始化逻辑、反射/代理/资源加载等,生成优化的原生映像
- 使用
./gradlew nativeCompile或mvn spring-boot:build-image(配合 Paketo 构建器)可直接产出原生可执行文件 - 注意:动态类加载、运行时字节码增强(如某些 AOP 场景)、部分测试框架(如 Mockito 默认配置)需显式适配或替换
HTTP 客户端统一与 WebClient 增强
Spring Boot 3.x 默认弃用 RestTemplate(标记为 @Deprecated),推荐使用响应式 WebClient:
标签: react java 字节 ai spring security
还木有评论哦,快来抢沙发吧~