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

embedded/2024/11/26 18:45:25/

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/embedded/140690.html

相关文章

【React】React Router:深入理解前端路由的工作原理

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 React Router:深入理解前端路由的工作原理路由的演进历程传统多页面…

litepal proguardFiles android studio

Step1:settings.gradle.kts or settings.gradle 添加阿里源 dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {maven(url "https://jitpack.io")maven (url "https://maven.aliyu…

[工具分享] 根据Excel数据根据Word文档模板,批量创建生成Word文档并重命名,方便快速查找打印

前几天交楼的小姐姐要多份Word文档合同打印给客户,那么100份就需要修改100次 上面好多都是模板的制式文件,里面的部分数据都是要根据实际值来变动的, 那么有没有快速的方法来操作呢,还是只能一个个手动的改,又容易出…

ubuntu 安装 conda

ubuntu 安装 conda ubuntu安装 conda 下载地址,访问清华镜像。 windows下载 exe安装文件, linux下载 sh安装文件 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 执行脚本 sh ./Anaconda3-5.3.1-Linux-x86_64.sh# 如果报错:bunz…

ZYNQ PS 基于 AXI_IIC 的 EEPROM 读写

REVIEW 关于 PS I2C读写EEPROM已经简单的实现过: ZYNQ PS 基于I2C的EEPROM读写-CSDN博客 1. 今日摸鱼任务 使用 AXI IIC 核搭建的 IIC 控制器读取 EDA 拓展板上的EEPROM 芯片。 数据经由 I2C 接口写入和读出 EEPROM芯片,并对比写入和读出的值,将…

CASAIM与新疆大学达成全自动化光学测量技术合作,加速推进智能制造现代产业学院建设

近年来,教育部、工业和信息化部联合发布了《现代产业学院建设指南(试行)》,旨在培养适应和引领现代产业发展的高素质应用型、复合型、创新型人才。这一政策背景为智能制造现代产业学院的建设提供了有力支持。 随着“中国制造2025”战略的深入实施&#…

Nginx防御机制

文章目录 1.访问控制1.1基于 IP 的访问限制1.2基于用户认证的访问控制 2.防止 DDoS 攻击2.1连接数限制2.2请求速率限制 3.缓存机制3.1内容缓存 4.安全协议与加密4.1SSL/TLS 加密4.2HTTP/2 支持 5.防 SQL 注入和 XSS 攻击5.1输入验证与过滤 6.防盗链6.1基于 Nginx 的防盗链配置方…

KMeans实验(以鸢尾花为例)

KMeans实验是一个经典的聚类分析实验,它利用KMeans算法将数据集中的样本分成K个簇,使得同一簇内的样本尽可能相似,而不同簇的样本尽可能不同。以下是以常用数据集(如鸢尾花数据集)为例的KMeans实验详细过程和内容&…