JavaEE 与 JakartaEE

2009年4月20日 : 

Oracle和SUN共同宣布了最终协议,Oracle将以74亿美元收购SUN公司

2018年: 

Oracle决定将Java EE(Java SE还自己保留)移交给开源组织Eclipse基金会,但涉及到商标和版权原因,Oracle不允许开源组织用Java的名号。

于是Eclipse选出了 "Jakarta EE" 和"Enterprise Profile"两个名字,最终前者胜出。所以Jakarta EE名称于2018.02.26应运而生。

javax命名空间其实早已成为过去式,

从JavaEE 8开始就被正式被改名为jakarta EE,

从Jakarta EE 9开始,便使用了全新的jakarta.*命名空间.

新版本的除了包含在JDK包中的除了javax.sql部分的,其他的javax部分基本都会替换为jakarta。

比如:开发web程序最常用的servlet,从maven中央仓库检索,会发现:servlet4.0.1以前的版本是javax,javax.servlet在2018年之后就没有更新了, 从4.0.2版本以后均迁移到了jakarta

影响:
1. Apache Tomcat
作为 Java EE 的重要实现项目,Apache Tomcat 项目中,javax 和 jakarta 都有出现。
Tomcat 9.0.x 版本:

javax 包含了一系列 Java Servlet、Java WebSocket 和 Java EL 扩展包,

例如 javax.servlet、javax.websocket 和 javax.el 等等,版本号为 4.0。

Tomcat 10.0.x 版本:

由于 Java EE 的迁移,javax 被替换成了 jakarta。

因此,Tomcat 10.0.x 版本中的 jakarta 包含了一系列的 Jakarta Servlet、Jakarta WebSocket 和 Jakarta EL 扩展包,

例如 jakarta.servlet、jakarta.websocket 和 jakarta.el 等等,版本号为 5.0。

需要注意的是,虽然 Tomcat 10.0.x 中的包名已经改为 jakarta,但是这些包的 API 和功能与之前的 javax 包保持兼容,因此开发人员可以在迁移应用程序时逐步将包名替换为 jakarta。
总的来说,Tomcat 9.0.x 版本中使用 javax 包,Tomcat 10.0.x 版本中使用 jakarta 包。但是,这两个版本中的包都包含了相同的 Servlet、WebSocket 和 EL 规范,只是包名和版本号略有不同。

Spring Boot 2.5.0 开始,使用 Tomcat 10 作为默认的嵌入式 Servlet 容器。如果想使用其他嵌入式 Servlet 容器,可以在项目中显式配置。在迁移项目到 Tomcat 10 时,需要注意包名和 API 的变化,进行适当的调整。

2. Spring6或者springboot3版本,会有一些jakarta的包


升级到JakartaEE10以上可能需要做一下操作:

更改包前缀需要更新对旧包的所有引用javax -> jakarta
过时的批注可能需要替换为替代批注
重写使用已删除 API 的代码,这些 API 没有直接的替代方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值