Jakarta项目介绍

2024-03-26 02:04
文章标签 项目 介绍 jakarta

本文主要是介绍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

参考

  • 什么是Jakarta EE

这篇关于Jakarta项目介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/846958

相关文章

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4