Jakarta项目介绍

概述

在升级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</version>
	<scope>provided</scope>
</dependency>
<dependency>
	<groupId>jakarta.servlet.jsp.jstl</groupId>
	<artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
	<version>3.0.0</version>
</dependency>
<dependency>
	<groupId>jakarta.servlet.jsp</groupId>
	<artifactId>jakarta.servlet.jsp-api</artifactId>
	<version>3.1.1</version>
	<scope>provided</scope>
</dependency>
<dependency>
	<groupId>jakarta.batch</groupId>
	<artifactId>jakarta.batch-api</artifactId>
	<version>2.1.1</version>
</dependency>
<dependency>
	<groupId>jakarta.json</groupId>
	<artifactId>jakarta.json-api</artifactId>
	<version>2.1.3</version>
</dependency>
<dependency>
	<groupId>jakarta.persistence</groupId>
	<artifactId>jakarta.persistence-api</artifactId>
	<version>3.1.0</version>
</dependency>
<dependency>
	<groupId>jakarta.jms</groupId>
	<artifactId>jakarta.jms-api</artifactId>
	<version>3.1.0</version>
</dependency>
<dependency>
	<groupId>jakarta.xml.ws</groupId>
	<artifactId>jakarta.xml.ws-api</artifactId>
	<version>4.0.0</version>
</dependency>
<dependency>
	<groupId>jakarta.ws.rs</groupId>
	<artifactId>jakarta.ws.rs-api</artifactId>
	<version>3.1.0</version>
</dependency>
<dependency>
	<groupId>jakarta.xml.bind</groupId>
	<artifactId>jakarta.xml.bind-api</artifactId>
	<version>4.0.2</version>
</dependency>
<dependency>
	<groupId>jakarta.json.bind</groupId>
	<artifactId>jakarta.json.bind-api</artifactId>
	<version>3.0.0</version>
</dependency>
<dependency>
	<groupId>jakarta.platform</groupId>
	<artifactId>jakarta.jakartaee-api</artifactId>
	<version>10.0.0</version>
	<scope>provided</scope>
</dependency>
<dependency>
	<groupId>jakarta.mail</groupId>
	<artifactId>jakarta.mail-api</artifactId>
	<version>2.1.3</version>
</dependency>
<dependency>
	<groupId>jakarta.validation</groupId>
	<artifactId>jakarta.validation-api</artifactId>
	<version>3.0.2</version>
</dependency>
<dependency>
	<groupId>jakarta.activation</groupId>
	<artifactId>jakarta.activation-api</artifactId>
	<version>2.1.3</version>
</dependency>
<dependency>
	<groupId>jakarta.transaction</groupId>
	<artifactId>jakarta.transaction-api</artifactId>
	<version>2.0.1</version>
</dependency>
<dependency>
	<groupId>jakarta.inject</groupId>
	<artifactId>jakarta.inject-api</artifactId>
	<version>2.0.1</version>
</dependency>
<dependency>
	<groupId>jakarta.el</groupId>
	<artifactId>jakarta.el-api</artifactId>
	<version>5.0.1</version>
</dependency>
<dependency>
	<groupId>jakarta.enterprise</groupId>
	<artifactId>jakarta.enterprise.cdi-api</artifactId>
	<version>4.0.1</version>
</dependency>
<dependency>
    <groupId>jakarta.annotation</groupId>
    <artifactId>jakarta.annotation-api</artifactId>
    <version>2.1.1</version>
</dependency>

拓展

jakarta项目

jakarta项目所包括的相关工具、库以及框架等罗列如下:

  • BCEL:处理Java字节码的类库
  • BSF:脚本程序框架
  • Cactus:服务器端Java类测试工具框架
  • ECS:The Element Construction Set is a Java API for generating elements for various markup anguages
  • HttpComponents:The Hyper-Text Transfer Protocol.
  • JCS:a distributed caching system written in java.
  • JMeter:压力测试工具
  • ORO:Java classes that provide Perl5 compatible regular expressions.
  • Regexp:纯Java正则表达式包
  • Slide:a content repository primarily using WebDAV.
  • Taglibs:Repository for JSP custom tag libraries

单独项目

最开始,所有关于Java的项目,都集中在Apache的Jakarta项目之下,作为子项目存在,这时的Tomcat称为Jakarta Tomcat。后来,Jakarta下面项目太多,就开始分家,如Ant、Tomcat等,故而现在称Apache Tomcat。

以前隶属于雅加达项目,但现在作为Aapche软件基金的单独项目:

  • Ant:在Maven出现之前特别流行的构建工具
  • Commons:一组使用类的合集,主要作为Java标准库的补充
  • HiveMind:a services and configuration microkernel
  • Maven:a project build and management tool
  • POI:a pure Java port of Microsoft’s popular file formats.
  • Struts:很多大龄程序员肯定对这个很熟悉,一个Web应用开发框架。大概十多年前,非常流行的Web开发框架SSH=Struts+Spring+Hibernate。后来流行的SSM=Spring-MVC+Spring+MyBatis。
    Tapestry:A component object model based on JavaBeans properties and strong specifications
  • Tomcat:服务器,提供JSP/Servlet相关容器类
  • Turbine:a rapid development web application framework
  • Velocity:a template engine

参考

  • 19
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
高效的Model 2编程并不是一项简单的任务,开发人员经常自己发现难于找到很多问题的最佳解决方式。本书是Struts项目的完全指南,引导开发人员理解概念、设计和实现方式。虽然它由Struts应用程序的基础开始并深入讲解了Model 2设计方案,但这本书很快转入了较高级的主题。安装和设置贯穿文档始终,并且清楚地解释了每个配置选项。本书利用大量使用了标准JSP标记库和Struts附加程序的实际例子,研究了Struts环境中的JSP编程技术。用户还将掌握多层应用程序编程,从Struts应用程序同EJB交互,利用Struts提供的包和工具处理复杂验证和登录。无论你是希望获取Struts极稀少的在线文档,还是希望学习Model 2编程技术,或者是作为一名高级Struts程序员想完全熟悉这个强大的框架包,这本书都将满足你的要求。<br/>本书主要内容:<br/>. Struts的安装、设置和配置<br/>. Struts映射到Model 2设计模式的完整介绍<br/>, 详细论述利用JSP使用Struts的知识,包括Struts标记库<br/>Struts异常处理、验证和登录<br/>Struts应用程序的国际化和本地化<br/>完整论述新StrutsTiles模板库<br/>Struts应用程序的打包和发布<br/>“许多开放源代码包缺少对所有特性的综合指导<br/>而是帮助您深入问题,解决实际的应用程序设计<br/>这些指导不仅仅是'hello,world'之类的东西,<br/>(本书)对于很多人员而言正是这样的指南”。<br/>—CraigMcClanahan(JakartaStruts创始人)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

johnny233

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值