最近在升级JDK由Java8升级到JDK17.
由 Java EE 升级为 Jakarta EE。那么为什么是 Jakarta EE。
javax.validation → jakarta.validation
javax.servlet → jakarta.servlet
javax.annotation → jakarta.annotation
javax.transaction → jakarta.transaction
javax.persistence → jakarta.persistence
Java EE(Java Platform, Enterprise Edition)和 Jakarta EE(Jakarta Enterprise Edition)是两个与企业级应用开发相关的技术平台
Java EE(Java Platform, Enterprise Edition)
Java EE 是 Java 平台的一个扩展,专注于企业级应用开发。它提供了一套标准化的 API 和规范,用于开发、部署和管理大规模、多层次、可扩展的企业应用。Java EE 包括以下核心组件:
Servlet:处理 HTTP 请求和响应。
- JSP(JavaServer Pages):动态生成 HTML、XML 或其他类型的内容。
- EJB(Enterprise JavaBeans):用于开发分布式、事务性的企业级组件。
- JMS(Java Message Service):用于异步消息传递。
- JPA(Java Persistence API):用于对象关系映射(ORM)。
- CDI(Contexts and Dependency Injection):用于依赖注入和管理组件生命周期。
- JTA(Java Transaction API):用于分布式事务管理。
Jakarta EE(Jakarta Enterprise Edition)
Jakarta EE 是 Java EE 的继任者,由 Eclipse 基金会管理。Oracle 在 2017 年将 Java EE 的商标和规范控制权移交给了 Eclipse 基金会,随后 Java EE 被重新命名为 Jakarta EE。Jakarta EE 的目标是继续推动企业级 Java 技术的发展,同时保持与 Java EE 的兼容性。
Jakarta EE 的核心组件和 API 与 Java EE 基本相同,但它们在命名空间和包名上有所变化。例如,Java EE 中的 javax.servlet
包在 Jakarta EE 中变成了 jakarta.servlet
。
- Servlet:处理 HTTP 请求和响应。
包名:jakarta.servlet
- JSP(JavaServer Pages):动态生成 HTML、XML 或其他类型的内容。
包名:jakarta.servlet.jsp
- EJB(Enterprise JavaBeans):用于开发分布式、事务性的企业级组件。
包名:jakarta.ejb
- JMS(Java Message Service):用于异步消息传递。
包名:jakarta.jms
- JPA(Java Persistence API):用于对象关系映射(ORM)。
包名:jakarta.persistence
- CDI(Contexts and Dependency Injection):用于依赖注入和管理组件生命周期。
包名:jakarta.enterprise.context
- JTA(Java Transaction API):用于分布式事务管理。
包名:jakarta.transaction
版本
Jakarta EE 从 Jakarta EE 8 开始,后续版本继续发展。以下是一些主要版本:
-
Jakarta EE 8:与 Java EE 8 兼容,主要变化是命名空间从
javax
改为jakarta
。 -
Jakarta EE 9:进一步推动了命名空间的迁移,并引入了一些新的特性和改进。
-
Jakarta EE 10:继续扩展和改进 Jakarta EE 平台,增加了新的 API 和功能。
主要区别
命名空间:
-
Java EE:使用
javax
命名空间(例如javax.servlet
)。 -
Jakarta EE:使用
jakarta
命名空间(例如jakarta.servlet
)。
管理机构:
-
Java EE:最初由 Sun Microsystems 开发,后来由 Oracle 管理。
-
Jakarta EE:是 Java EE 的继任者,由 Eclipse 基金会管理,继续推动企业级 Java 技术的发展。
-
版本:
-
Java EE:最后一个版本是 Java EE 8。
-
Jakarta EE:从 Jakarta EE 8 开始,后续版本继续发展。
-
兼容性
Jakarta EE 的目标是保持与 Java EE 的兼容性,因此大多数 Java EE 应用可以迁移到 Jakarta EE 平台,只需进行少量的命名空间更改。