Jakarta EE 11 平台规范就绪,以及 Spring 7 对 JEE 11的支持

June 18, 2025

随着 Jakarta EE Platform 11 主页 上的“正在开发”字样被移除,平台规范 pdf 文档也发布了正式版本。

Jakarta EE 11规范将会很快发布!

一、Jakarta EE 11 最终规范将很快发布

可以说 JEE 11版经历了一个漫长的周期,最初打算是在去年秋季就发布的,后来经过推迟。并在2024年12月发布了Core Profile,2025年4月发布了Web Profile。

推迟的一个原因是TCK测试用例进行改造重写,使用Arquillian。

(不过我最近看TCK源码,测试代码结构的确发生了重大变化,但似乎并没有完全使用Arquillian测试框架?)

Jakarta EE 11 规范集合如下:

Core Profile

  • Restful Web Service(JaxRS) 4.0
  • JsonP 2.1 (10)
  • JsonB 3.0 (10)
  • CDI 4.1 Weld (分为 Lite / Full)
  • Annotation 3.0
  • Dependency Injection 2.0 (9)
  • Interceptors 2.2

Web Profile

  • Persistence (JPA) 3.2
  • Data 1.0 新的规范
  • Validation 3.1
  • Transactions 2.0 (9)
  • Servlet 6.1
  • Pages (JSP) 4.0
  • EL(Expression Language) 6.0
  • Standard Tag Library 3.0 (10)
  • Websocket 2.2
  • Security 4.0
  • Authentication 3.1
  • Authorization 3.0
  • Concurrency 3.1
  • Debugging Support for Other Languages 2.0 (9)
  • Enterprise Beans (EJB) 4.0 (9) (Lite)
  • Faces (JSF) 4.1

Platform (Full)

  • Messaging (JMS) 3.1 (10)
  • Mail 2.1 (10)
  • Batch 2.1 (10)
  • Enterprise Web Services (JaxWS) 2.0 (9)
  • Connector (JCA) 2.1 (10)

注:以上(括号)是本次没有更新的原版本子规范

参考实现(RI) Glassfish 也会发布 v7 版本,Wildfly 和 Open Liberty 已经有支持 JEE 11 大多数特性的预览版,预计也会通过TCK认证。其他下游衍生版也会跟进。

二、Spring Framework 7 对 JEE 11的支持

JDK和JEE规范,共同推动者Java生态向前发展。 将于今年10月发布的Spring框架新的大版本 v7,就将基于 Jakarta EE 11。 可能很多Java开发者并不完全理解,还总把Spring和JEE对立起来。

在2024年10月,Spring社区博文 https://spring.io/blog/2024/10/01/from-spring-framework-6-2-to-7-0 ,就明确了技术基线的改变: We will upgrade our baseline to Jakarta EE 11 (Tomcat 11, Hibernate ORM 7, Hibernate Validator 9) and embrace the upcoming JDK 25 LTS, while retaining a JDK 17 baseline in alignment with the wider Java ecosystem.

当前 Spring Framework 代码 mainline 主干 (v7) 中,引入的Jakarta EE包有:

api("jakarta.activation:jakarta.activation-api:2.1.3")
api("jakarta.annotation:jakarta.annotation-api:3.0.0")
api("jakarta.validation:jakarta.validation-api:3.1.0")
api("jakarta.ejb:jakarta.ejb-api:4.0.1")
api("jakarta.el:jakarta.el-api:6.0.1")
api("jakarta.enterprise.concurrent:jakarta.enterprise.concurrent-api:3.1.1")
api("jakarta.faces:jakarta.faces-api:4.1.2")
api("jakarta.inject:jakarta.inject-api:2.0.1")
api("jakarta.inject:jakarta.inject-tck:2.0.1")
api("jakarta.interceptor:jakarta.interceptor-api:2.2.0")
api("jakarta.jms:jakarta.jms-api:3.1.0")
api("jakarta.json.bind:jakarta.json.bind-api:3.0.1")
api("jakarta.json:jakarta.json-api:2.1.3")
api("jakarta.mail:jakarta.mail-api:2.1.3")
api("jakarta.persistence:jakarta.persistence-api:3.2.0")
api("jakarta.resource:jakarta.resource-api:2.1.0")
api("jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.2")
api("jakarta.servlet.jsp:jakarta.servlet.jsp-api:4.0.0")
api("jakarta.servlet:jakarta.servlet-api:6.1.0")
api("jakarta.transaction:jakarta.transaction-api:2.0.1")
api("jakarta.validation:jakarta.validation-api:3.1.0")
api("jakarta.websocket:jakarta.websocket-api:2.2.0")
api("jakarta.websocket:jakarta.websocket-client-api:2.2.0")

已经都是 JEE 11 的子规范版本号。

三、Spring对于JEE规范的支持

以下是通过源码分析,Spring Framework和其他主要项目(如Spring Boot,Spring Security等等)对于Jakarta规范的支持。

现罗列如下:

  • Jaxrs - 未使用,对应为webmvc。Springboot有Jersey starter
  • Json - web/http/converter/json支持。另支持Jackson,Gson,Jsonb
  • CDI - 未使用,对应为bean/context。DI规范,集成使用
  • JPA - orm/jpa,充分应用
  • Data - 未使用,对应为SpringData
    • Validation - context,集成使用。SpringBoot validation starter
  • Transaction - tx/jta,支持
  • Servlet - web,充分使用
  • Jsp - context-support/ui/freemarker支持模板
  • EL - 未使用,对应为expression
  • Websocket - websocket模块有adaptor
  • Security - 未使用,对应为Spring Security
  • Concurrency - context/scheduling,集成使用
  • JMS - jms模块支持
  • MP - 未使用,对应为SpringCloud
  • JNDI/EJB - context集成
  • Faces - web/jsf适配
  • Mail - context-support/mail,集成使用
  • Batch - 未使用,对应为SpringBatch
  • Jaxws - spring-ws-core集成使用
  • JCA - Spring 5 tx模块中,6去除cci等
  • MVC - 未使用,对应为webmvc
  • NoSQL - 未使用,对应为SpringData
  • JCache - context/cache定义,context-support支持

这个列表对于现有Java应用进行JDK升级,以及云原生改造都有技术帮助,供参考。

关于Java技术框架深入分析,欢迎进一步沟通交流。