Spring Boot 3.0废弃了JavaEE,改用了Jakarta EE

server/2024/11/26 19:03:07/

Spring Boot 3.0废弃了JavaEE,改用了Jakarta EE

历史背景

javax变成Jakarta的主要原因是因为Java EE项目从Oracle转移到了Eclipse Foundation,并改名为Jakarta EE

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。这一变化是为了将Java EE作为一个独立的开源项目进行维护和发展。从Java EE 8开始,所有的API包名从javax.变更为jakarta.,以反映这一变化。例如,javax.servlet包更名为jakarta.servlet。

对开发者的建议

这一变化对 Java 开发者的影响主要体现在以下几个方面:

  1. 包名替换:
    在 JDK 11 及之后的版本中,一些原本属于 javax.* 包的 API 已经被替换为 jakarta.* 包下的 API。比如,javax.servlet.* 包中的 API 被替换为 jakarta.servlet.* 包。开发者需要注意在升级到 JDK 11 及以上版本后,应该使用新的包名来引用相关的类和接口。

  2. 兼容性:
    为了确保向后兼容性,JDK 11 以后的版本仍然会保留 javax.* 包中的 API,但是这些 API 将被标记为不推荐使用,开发者被建议尽快迁移到 jakarta.* 包中的 API。同时,JDK 中也提供了一些工具和脚本,来帮助开发者进行代码迁移。

  3. 迁移工具:
    为了帮助开发者进行代码迁移,JDK 中提供了一些工具和脚本,比如 jdeps 工具可以用来分析代码中是否存在使用了 javax.* 包的 API,以及 jdk.xml.bind 模块中的迁移工具可以用来将代码中的 JAXB 相关 API 迁移到 java.xml.bind 模块中。

  4. 迁移指南:
    Oracle 和 Eclipse 基金会也提供了一些迁移指南和文档,帮助开发者顺利地进行代码迁移。这些文档包括了从 javax.* 到 jakarta.* 包的替换规则、常见的迁移问题和解决方案等。

总的来说,对于从 JDK 11 开始的项目,开发者应该尽量避免使用 javax.* 包中的 API,而是使用对应的 jakarta.* 包中的 API,以便确保代码的向后兼容性和可维护性。同时,应该借助 JDK 中提供的工具和文档,尽快进行代码迁移。

JavaEE_30">Spring Boot 3.0废弃了JavaEE

Spring Boot 3.0.0的第一个里程碑版本M1发布,Java基线提升到Java 17,移除对Java EE APIs的支持并转向Jakarta EE

  1. Spring Boot 3.0已将所有底层依赖项从Java EE迁移到了Jakarta EE API,基于Jakarta EE 9并尽可能地兼容Jakarta EE 10。这是因为Java EE已经正式更名为Jakarta EE,相关的名称都发生了变化,包括包名。这一变化使得使用Java EE的应用需要进行较大的改动。

  2. Spring Boot 3.0最低支持的Spring框架也变成了Spring 6.0.2+,虽然是框架自动集成依赖的,但需要注意这点。因为前段时间发布的Spring 6.0也有不少的底层升级。

参考文档

jakarta EE官网
Spring Boot 3.0 Release Notes
Spring Boot 3.0 Migration Guide


http://www.ppmy.cn/server/145129.html

相关文章

电脑的ip地址怎么换掉:全面指南

在数字化时代,电脑已成为我们日常生活和工作中不可或缺的一部分。而IP地址,作为电脑在网络世界中的唯一身份标识,其重要性不言而喻。有时,出于安全、隐私或访问特定资源的需要,我们可能需要更换电脑的IP地址。本文将详…

React表单联动

Ant Design 1、dependencies Form.Item 可以通过 dependencies 属性,设置关联字段。当关联字段的值发生变化时,会触发校验与更新。 一种常见的场景:注册用户表单的“密码”与“确认密码”字段。“确认密码”校验依赖于“密码”字段&#x…

簡單易懂:如何在Windows系統中修改IP地址?

無論是為了連接到一個新的網路,還是為了解決網路連接問題,修改IP地址都是一個常見的操作。本文將詳細介紹如何在Windows系統中修改IP地址,包括靜態IP地址的設置和動態IP地址的獲取。 IP地址是什麼? IP地址是互聯網協議地址的簡稱…

【 模型】 开源图像模型Stable Diffusion入门手册

开源图像模型Stable Diffusion入门手册 引言硬件要求环境部署手动部署整合包 模型装配更新显存优化插件配置文生图最简流程提示词使用技巧结语 引言 Stable Diffusion是一款在2022年发布的深度学习文字到图像生成模型。它能够根据文字描述生成详细的图像,并且在几秒…

ddddocr:强大的开源OCR库(2.0版本)

ddddocr:强大的开源OCR库(2.0版本) ddddocr 是一款基于深度学习的开源 OCR(光学字符识别)库,旨在高效识别各种验证码。随着版本更新,ddddocr 的功能不断增强,特别是2.0版本在准确率…

[Unity Demo]从零开始制作空洞骑士Hollow Knight第二十集:制作专门渲染HUD的相机HUD Camera和画布HUD Canvas

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、制作HUD Camera以及让两个相机同时渲染屏幕二、制作HUD Canvas 1.制作法力条Soul Orb引入库2.制作生命条Health读入数据3.制作吉欧统计数Geo Counter4.制作…

云服务器部署WebSocket项目

WebSocket是一种在单个TCP连接上进行全双工通信的协议,其设计的目的是在Web浏览器和Web服务器之间进行实时通信(实时Web) WebSocket协议的优点包括: 1. 更高效的网络利用率:与HTTP相比,WebSocket的握手只…

【已解决】python面试、竞赛编程问题:最长递增子序列和旅行商问题(TSP)

在面试、竞赛以及实际应用中,有几个常见的问题,比如今天尝试解决的:最长递增子序列和旅行商问题(TSP)。本文针对这两个问题如何分析和求解并使用python编程实现给出了详细的步骤,供参考学习。 一、最长递增子序列问题 问题背景 一个经典的算法问题:“最长递增子序列(…