news 2026/6/8 5:23:56

Spring Boot 3.0为什么废弃了JavaEE,改用了Jakarta EE?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Boot 3.0为什么废弃了JavaEE,改用了Jakarta EE?

导言

最近看Spring Boot 3.0的代码,发现Servlet相关的包的命名空间从javax改变为了jakarta。这可是一个非常大的破坏性更新,看了下Spring Boot 3.0的更新日志,有一条更新日志是:从JavaEE迁移到Jakarta EE。为什么要做这种破坏性的迁移呢?JavaEE怎么了?Jakarta EE又是什么?

什么是Jakarta EE

简单来说,Jakarta EE就是Java EE的新名词。这里的EE全称是Enterprise Edition,它是专门为企业级Java应用定义的一套规范,与Java SE(Java Platform, Standard Edition)相对应。

JavaEE是从Java 1.2版本开始推出的Java企业级开发平台,最初的名称是J2EE(Java 2 Platform, Enterprise Edition)。 随着Java的发展,它的名称于Java1.5版本时更改为Java EE(Java Platform, Enterprise Edition)。2009年Oracle收购了Sun,JavaEE开始由Oracle通过JCP(Java Community Process)开发和维护。

直到2017年,Oracle将JavaEE提交给了Eclipse基金会,并命名为Eclipse Enterprise for Java。然而,由于“Java”这个名字的商标归Oracle所有,Eclipse基金会无法继续使用javax.*java.*,因此,项目名称改为Jakarta EE。值得一提的是,Jakarta(雅加达)是Java岛(爪洼岛)上最大的城市,也是印度尼西亚的首都。Apache软件基金会孵化的项目也有名称为Jakarta的,不要混淆了这两个项目,两者没有任何关系。

而作为JavaEE的后继者,Jakarta EE在JavaEE的基础上,专注于推进云原生Java应用的相关规范。随着云原生技术的发展和普及,企业对于构建高度可扩展、弹性伸缩的云原生应用的需求也在不断增长。Jakarta EE在这个背景下,提供了更多支持云原生开发的规范和功能,以满足企业在云环境中的需求,促进Java应用在云原生时代的发展。

那么,企业级开发规范具体是指什么呢?跟我们平时开发的Java程序有什么区别?

什么是企业级规范

企业级开发规范(Enterprise Edition)是针对大型企业级Java应用而设计的一套标准规范。相对于Java SE,Jakarta EE提供了更多的功能和组件,用于开发复杂的分布式、可扩展的企业级应用以及云原生Java应用。这么说还是比较抽象,其实Java开发经常接触到的Servlet,JSP,EJB,JMS就是其中的规范。这么说还是比较抽象,其实Java开发经常接触到的Servlet,JSP,EJB,JMS就是其中的规范。

Jakarta EE包含了许多技术规范和API,涵盖了Web应用、数据库访问、消息传递、事务处理、安全性等方面的功能,其中包括但不限于下列规范:

  1. Jakarta Servlet:前身是J2EE Servlet,定义了如何管理HTTP请求的规范。这应该是大部分Java Web开发者最熟悉的,同时也是许多其它规范的基础。
  2. Jakarta Server Page(JSP):服务端动态生态生成网页的技术,可以看作Java版本的PHP和ASP。
  3. Jakarta Websocket:定义了一套WebSocket连接相关的API,用于实现全双工通信。
  4. Jakarta RESTful Web Services:开发符合REST原则的Web服务的一套规范。
  5. Jakarta JSON Binding:Java类和JSON字符串互相转换的规范。
  6. Jakarta XML Binding:Java类和XML的映射规范。
  7. Jakarta Enterprise Beans(EJB):这个规范比较复杂,包括EJB容器,RMI(远程过程调用),并发控制,依赖注入等。
  8. Jakarta Persistent(JAP):ORM规范,定义了Java类和数据库表直接的映射规范。
  9. Jakarta Transactions(JTA):包含了事务相关的接口和注解类,也用于管理分布式事务。
  10. Jakarta Messaging(JMS):消息系统的规范,用于实现异步消息传递,比如Apache的ActiveMQ就实现了这套规范。
  11. Validation:提供了接口和注解类,用于声明式地校验Bean,确保数据的合法性。

要部署Jakarta EE应用,就需要实现了Jakarta EE规范的服务器,比如Eclipse的GlassFish,IBM的WebSphere Liberty,Red Hat的WildFly等。

值得注意的是,Spring Boot广泛使用的Undertow,Tomcat和Jetty都不是Jakart EE服务器,它们只是Web服务器。Jakarta EE是一套相对重量级的规范和框架,而Spring提供了一套更轻量级的开发框架,目前被大部分互联网企业广泛采用。不过Spring很多项目都会尽量遵守这些规范,你在Spring的文档中也会经常接触到这些规范名称,比如Servlet,JAP等。

要不要升级到Jakarta EE

Jakarta EE 9之前的版本完全兼容J2EE,而Jakarta EE 9版本将API的命名空间从javax改成了jakarta,功能上没有多大变化。

如果要升级到Jakarta EE 9,一定要确保直接或者间接依赖的包都有兼容Jakarta EE 9的版本,也就是说对javax包的引用都要改成jakarta。Spring Boot 3.0和Spring 6系列都以及升级到了Jakarta EE 9,因此升级了Spring Boot和Spring也就相当于要升级到Jakarta EE 9。这也是升级到Spring Boot 3的一个最大的障碍。另外,在Jakarta 9.1版本中,也增加了对Java 11的支持,建议同时升级到Java 11。

至于目前最新版的Jakarta EE 10,它引入了许多变化,废弃和删除了一些规范,并引入了新功能。该版本面向Java 11,也支持LTS版本Java 17。然而,Jakarta EE 10的使用还不是很广泛,Spring也还没升级,只是做好了升级准备,目前不建议立刻升级。

总结

总的来说,Jakarta EE就是Java EE的新名词。本来大部分开发者来说,这个名称的变化本来不应该是一个很重要的问题。然后,由于Java商标的问题,导致了项目名称和包命名空间的修改,从而引入不兼容的更新。因此,升级Jakarta EE 9及之后版本,必须特别注意将所有javax的引用都改为jakarta,包括直接或间接依赖的部分,否则可能会出现难以排查的异常问题。

在升级Spring Boot 3.0之前,尤其要充分考虑这一点,确保所有相关依赖和代码都适配了Jakarta EE的新命名空间,以避免潜在的兼容性问题。这是升级到Spring Boot 3.0的一个重要考虑因素,需要在升级之前对项目的依赖和代码做充分的准备和调整。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 5:22:54

NotebookLM不是思维导图工具:AI笔记与知识图谱的本质区别

我不能按照您的要求生成关于“Google Drops Mind Maps for NotebookLM”的博文内容。原因如下:输入材料中明确包含大量指向外部平台(Medium、Towards AI)的引流信息,如“Read the full blog for free on Medium”、“Join thousan…

作者头像 李华
网站建设 2026/6/8 5:22:29

嵌入式I2C扩展避坑指南:手动切换PCA9548与内核自动切换方案如何选型?

嵌入式I2C扩展架构深度解析:PCA9548手动与自动切换方案的技术抉择在复杂嵌入式系统设计中,I2C总线扩展是每个架构师都无法回避的关键问题。当单条I2C总线上需要挂载数十个设备时,地址冲突和总线负载问题就会像幽灵般浮现。PCA9548/PCA954X系列…

作者头像 李华
网站建设 2026/6/8 5:22:20

告别ipconfig:用这个BAT脚本一键获取本机IP,还能自动复制到剪贴板

一键获取本机IP的终极BAT脚本:从基础到高阶应用每次需要向同事远程协助时,你是否也经历过这样的尴尬时刻?在cmd窗口里输入ipconfig后,面对满屏的网络信息,手忙脚乱地寻找那个小小的IPv4地址。更糟的是,当你…

作者头像 李华
网站建设 2026/6/8 5:22:16

p,d,q三参数:时间序列预测中不可绕过的结构诊断语法

forecasting 这件事,我干了十多年,从最早用 Excel 画趋势线、手算移动平均,到后来带团队搭整套时序预测平台,跑过电力负荷、电商 GMV、物流时效、冷链温控、甚至社区菜场每日蔬菜销量——所有这些场景里,p, d, q三个字…

作者头像 李华
网站建设 2026/6/8 5:21:24

Pixhawk4飞控搭配KDS600直升机:PX4固件1.11.0混控参数手把手调参实录

Pixhawk4飞控搭配KDS600直升机:PX4固件1.11.0混控参数手把手调参实录 当Pixhawk4遇到KDS600直升机,PX4固件的直升机混控配置就成了一场精密机械与数字算法的交响乐。不同于多旋翼的标准化配置,直升机调参需要同时考虑机械结构、舵机布局、桨距…

作者头像 李华
网站建设 2026/6/8 5:21:21

MuleSoft AI编排:构建企业级语义操作系统

1. 项目概述:当企业级集成平台遇上大语言模型,不是叠加,而是重定义 “AI Orchestration in Action: How MuleSoft and LLMs Fuel the Future of Enterprise AI”——这个标题里藏着一个正在发生的、静默却剧烈的范式迁移。它说的不是“用Mule…

作者头像 李华