Jakarta项目介绍

本文讲述了在升级SpringBoot3.0或Spring6.0后遇到的编译和启动问题,主要原因是Spring6不支持javax依赖,需改为jakarta。文章详细列出了jakarta相关依赖包及其版本,并指导了Maven配置和代码调整,还介绍了JakartaEE的历史和关键组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

在升级Spring Boot到3.0版本以后,或升级Spring到6.0版本以上,会发现应用编译失败或启动失败等问题。

经过排查不难得知,Spring 6或Spring Boot 3(实际上依赖于Spring 6)不再支持javax.开头的一系列依赖包,需要改成jakarta.开头的一系列包。

当然编译失败或启动失败,还有其他原因,如:部分API不再是@deprecated而是直接被removed等。另外,Spring Boot 3依赖的JDK最低版本是17。

升级

<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>javax.servlet-api</artifactId>
</dependency>

在这里插入图片描述
根据maven的提示做如下升级:

<dependency>
	<groupId>jakarta.servlet</groupId>
	<artifactId>jakarta.servlet-api</artifactId>
	<version>6.0.0</version>
	<scope>provided</scope>
</dependency>

在代码层面,import javax.*替换为import jakarta.*

如果你在使用IDEA(什么?还有Javaer不用IDEA),借助于IDEA(2021.2+版本)提供的功能:
在这里插入图片描述
几乎可以一键完成依赖升级。

javax vs jakarta

在Java生态系统中,最初javax是一个缩写,代表Java Extension。javax作为包名,包含一系列的Java扩展(补充)包,提供各种不同的功能,如Servlet、JDBC、JMS等。这些扩展包通常是Java标准库之外的库,需要单独下载和安装,可帮助Java开发人员完成各种任务。

Jakarta EE

Jakarta EE并不是什么新技术,其前身即是Java EE,再往前就是J2EE。

Jakarta EE 9概览
在这里插入图片描述
Jakarta EE 9专注于迁移到新的命名空间并清除一些无谓的规范。

Jakarta EE10概览
在这里插入图片描述
Jakarta EE 10包括12个具有主要版本更新的组件规范和12个具有次要版本更新的组件规范。

随Jakarta EE 10发布的Core Profile 10,是 Jakarta EE Technologies 的子集,针对微服务和云开发运行时。 从MicroProfile发展而来的。

Core Profile 10中包含的Jakarta EE组件规范的关键子集:

  • 注释 2.1
  • 上下文和依赖注入 (CDI) Lite 4.0
  • 依赖注入 2.0
  • 表达语言 5.0
  • 拦截器 2.0
  • JSON-B 3.0
  • JSON-P 2.1
  • RESTful Web 服务 3.1

jakarta依赖

jakarta提供的依赖:

  • jakarta.servlet-api:学习Java Web开发,绕不过Servlet。Spring Boot基于Spring,基于Spring MVC,底层很多概念都是Servlet。
  • jakarta.servlet.jsp.jstl-api:
  • jakarta.servlet.jsp-api
  • jakarta.batch-api:提供基于XML的作业规范语言(Job Specification Language, JSL),允许以XML形式定义和执行批处理作业。
  • jakarta.persistence-api:提供Java持久化API的实现,允许开发人员将Java对象映射到关系数据库中。
  • jakarta.jms-api:Java消息服务应用程序接口是一个Java平台中关于面向消息中间件的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。
  • jakarta.xml.ws-api:
  • jakarta.ws.rs-api:
  • jakarta.xml.bind-api:提供实体类和XML文档来回转换的API
  • jakarta.json-api:用于解析、生成、转换和查询JSON文档。
  • jakarta.json.bind-api:提供实体类和JSON文档来回转换的API
  • jakarta.jakartaee-api:
  • jakarta.mail-api:提供平台无关和协议无关的邮件收发抽象类
  • jakarta.validation-api:
  • jakarta.activation-api:
  • jakarta.transaction-api:
  • jakarta.inject-api:
  • jakarta.el-api:
  • jakarta.enterprise.cdi-api:
  • jakarta.annotation-api:

附当前最新版Maven GAV:

<dependency>
	<groupId>jakarta.servlet</groupId>
	<artifactId>jakarta.servlet-api</artifactId>
	<version>6.0.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

johnny233

晚饭能不能加鸡腿就靠你了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值