Jakarta EE - Java EE的又一个名字

news2024/11/16 0:17:12

Jakarta EE并不是新技术,他的前身就是大家熟悉的Java EE,老一辈的程序员可能还记得J2EE,是的,他们都是同一个东西,至于为什么会改来改去,这里面就有很多故事了。

1998年12月,SUN公司发布了JDK1.2,开始使用Java 2 这一名称,第二年Sun公司联合IBM、Oracle、BEA等大型企业应用系统开发商共同制订了一个基于Java组件技术的企业应用系统开发规范,名字很自然就取为Java 2 Platform Enterprise Edition简称J2EE。

后面的事情大家也知道,JDK 版本升的很快,J2EE名称如果跟着Java 版本走必然会给开发人员造成困惑不利于该技术的推广,终于在 2006年,SUN公司在发布Java 5 后正式将J2EE改名为Java EE(Java Platform, Enterprise Edition),很多早期 J2EE 开发者虽然现在用的是最新的 Java EE 标准但他们还是认为自己在用 J2EE,当然,只是名称的改变并没有给开发者带来什么麻烦,相比之下下面这个就是要命。

2009 年,Oracle宣布收购 SUN,Java 相关技术自然归 Oracle 所有,在 2017 年,Oracle 宣布开源 Java EE 并将项目移交给 Eclipse 基金会。

但Oracle移交的很不痛快,提了很多要求,其中就包括不能再使用 Java EE这个 名称,虽然有点无理但Eclipse 基金会还是接受了这个要求并且改名为 Jakarta EE,经历了从 J2EE 到 Java EE的改名再经历一次似乎也无所谓,但要命的是 Oracle 要求 Jakarta EE 不能修改 javax 命名空间,这个就意味着 Java EE 移交后代码就此封版,如果想修改代码,不好意思,请另起炉灶。

我们也写了一篇: J2EE,Java EE,Jakarta EE 命名之间的恩恩怨怨icon-default.png?t=N3I4https://www.ossez.com/t/j2ee-java-ee-jakarta-ee/14382/1 文章。

根据Oracle的要求 Jakarta EE不能修改 javax 命名空间

那么 Jakarta EE 只能将代码中 javax 修改为 jakarta ,因此最新版本Jakarta Maven描述是长这样的:

<dependency>
    <groupId>jakarta.platform</groupId>
    <artifactId>jakarta.jakartaee-api</artifactId>
    <version>10.0.0</version>
    <scope>provided</scope>
</dependency>

根据 Java Docs 网站的内容,新的 jakarta 包中的内容长的是这样的。

jakarta.jakartaee-api 10.0.0 javadoc (jakarta.platform)https://javadoc.io/doc/jakarta.platform/jakarta.jakartaee-api/latest/index.html

从上面我们可以看到,新的包完全没有使用 javax 的定义了。

所以,如果你开始使用 jakarta.jakartaee-api 的话,那么包的命名空间就为:jakarta

这个名字确实比 javax 麻烦点,谁都知道这 Oracle 就这个尿性,所以体谅下,有比没有强。

Jakarta EE - Java EE的又一个名字 - Java - OSSEZJakarta EE并不是新技术,他的前身就是大家熟悉的Java EE,老一辈的程序员可能还记得J2EE,是的,他们都是同一个东西,至于为什么会改来改去,这里面就有很多故事了。 1998年12月,SUN公司发布了JDK1.2,开始使用Java 2 这一名称,第二年Sun公司联合IBM、Oracle、BEA等大型企业应用系统开发商共同制订了一个基于Java组件技术的企业应用系统开发规范,名字很自然就取为Java 2 Platform E…https://www.ossez.com/t/jakarta-ee-java-ee/14384

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PySide6/PyQT多线程之 线程锁/线程安全

前言 PySide6/PyQT多线程同时访问同一个共享资源或对象&#xff0c;程序可能会出现预期之外的结果。所以需要考虑线程安全问题。 使用PySide6/PyQT开发GUI应用程序&#xff0c;在多个线程同时访问同一个共享对象时候&#xff0c;如果没有进行同步处理那就可能会导致数据不一致或…

HTML5 <q> 标签、HTML5 <rp> 标签

HTML5 <q> 标签 实例 HTML5 <q>标签用于定义一个短引用。请参考一下内容&#xff1a; 标记一个短的引用&#xff1a; <p>WWFs goal is to: <q>Build a future where people live in harmony with nature.</q> We hope they succeed.</p&g…

019:Mapbox GL加载天地图(影像瓦片图)

第019个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载天地图(影像瓦片图)。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共80行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置:h…

2023年定向增发研究报告

第一章 行业概况 定向增发是增发的一种&#xff0c;是指上市公司向符合条件的少数特定投资者非公开发行股份的行为&#xff0c;有时也称“定向募集”或“私募”。定向增发的发行价格由参与增发的投资者竞价决定&#xff0c;发行程序与公开增发相比较为灵活。一般认为&#xff…

中国地图标准坐标和投影参数

目录 一、地理坐标 二、投影坐标 三、ArcGIS投影变换 四、说明 一、地理坐标 GCS_Krasovsky_1940&#xff08;克拉索夫斯基_1940椭球体&#xff09; 具体参数如下图&#xff1a; 每个国家或地区都有各自的基准面&#xff0c;我们通常所说的北京54坐标系、西安80坐标系实际上…

天梯赛练习题集

L2-005 集合相似度 find函数&#xff0c;Nt用集合关系求 #include <bits/stdc.h> #define ios ios::sync_with_stdio(0),cin.tie(0) #define PII pair<int,int> typedef long long ll; const int N1e610; const int inf0x3f3f3f3f;using namespace std; int n,k;…

深度学习(9)之 easyOCR使用详解

easyOCR使用详解 本文在 OCR-easyocr初识 基础上进行修改EasyOCR 是一个python版的文字识别工具。目前支持80中语言的识别。其对应的 github 地址&#xff1a;EasyOCR可以在网站版测试 demo 测试效果&#xff1a;https://www.jaided.ai/easyocr/其在字符识别上的效果如下&…

学系统集成项目管理工程师(中项)系列07_信息(文档)管理

1. 信息系统相关信息&#xff08;文档&#xff09; 1.1. 是指某种数据媒体和其中所记录的数据 1.2. 永久性 1.3. 由人或机器阅读 1.4. 仅用于描述人工可读的东西 2. 分类 2.1. 开发文档 2.1.1. 可行性研究报告和项目任务书 2.1.2. 需求规格说明 2.1.3. 功能规格说明 …

MapReduce高级-读写数据库

MapReduce 读取数据库 为什么要读写数据库 本质上讲数据库是存储数据的介质&#xff0c;MapReduce是处理数据的计算引擎。通常企业会使用关系型数据库&#xff08;RDBMS&#xff09;来存储业务的相关数据&#xff0c;随着业务数据的规模越来越大&#xff0c;不可避免的存在性…

C++ -3- 类和对象 (中) | 拷贝构造函数 赋值运算符重载(二)

文章目录 4.拷贝构造函数什么是拷贝构造函数&#xff1f;应用——示例&#xff1a;日期计算器什么情况下需要自己实现拷贝构造函数&#xff1f; 5.赋值运算符重载运算符重载&#xff08;重要&#xff09;赋值运算符重载 拷贝构造函数和赋值重载函数 4.拷贝构造函数 什么是拷贝…

【进阶C语言】静态版通讯录的实现(详细讲解+全部源码)

前言 &#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;正在学习C/C、Java、Python等。 &#x1f4d7;本文收录于C语言进阶系列&#xff0c;本专栏主要内容为数据的存储、指针的进阶、字符串和内存函数的介绍、自定义类型结构、动态内存管理、文件操作等&#xff0…

Javaee Spring JdbcTemplate基本使用查询数据库表的内容 基于xml配置方式

目录 哈哈哈哈&#xff0c;说好是要写一篇关于jdbcTemplate的基本使用&#xff0c;貌似说跑题了&#xff0c;但是主体还是用jdbctemplate实现的&#xff0c;有耐心看完的话相信能有点点收获的哦&#xff01; 项目结构&#xff1a; 用到的数据库: 小结&#xff1a; 遇到了个小…

【Python_Opencv图像处理框架】图像基本操作

写在前面 很幸运能选择Python语言进行学习&#xff0c;这是有关Opencv的图像处理的第一篇文章&#xff0c;讲解了有关图像处理的一些基础操作&#xff0c;作为初学者&#xff0c;我尽己所能&#xff0c;但仍会存在疏漏的地方&#xff0c;希望各位看官不吝指正❤️ 写在中间 1…

Docker容器---介绍、安装

Docker基本管理 一、Docker概述1、IT架构2、什么是docker3、Docker特点4、Docker与KVM区别 二、Docker核心概念1、镜像 容器 仓库2、虚拟架构有哪些 三、Docker使用场景1、Docker在内核中支持的2种重要技术2、应用场景 四、Docker安装1、YUM安装docker2、设置阿里云镜像源3、查…

Java多线程初阶(一)(图片+源码+超详细)

线程的概念参照以往的这篇文章&#x1f43b; 目录 1.创建线程 1.1 继承Thread类 1.2 实现Runnable接口 eg&#xff1a;常用的简写方式 2.Thread类中的常用API 3. start方法和run方法 4. 继承Thread类启动新线程的逻辑 5. 实现Runnable接口启动新线程的逻辑 6. 线程相关…

Linux基础—日志分析

Linux基础—日志分析 一、日志的功能1.日志消息的级别2.设备字段说明 二、日志文件的分类1.内核及系统日志2.用户日志3.程序日志 三、日志文件1.日志文件查看2.主要日志文件介绍3.日志管理策略 一、日志的功能 用于记录系统、程序运行中发生的各种事件 通过阅读日志&#xff0c…

图像描述算法排位赛:SceneXplain与MiniGPT-4谁将夺得桂冠?

如果你对 AI 前沿感兴趣&#xff0c;本场「图像描述算法排位赛」绝对是你不能错过的&#xff01;在这场较量中&#xff0c;SceneXplain 和 MiniGPT-4 将会比试&#xff0c;谁将摘得这场比赛的桂冠&#xff1f; &#x1f4ce; 直接上手体验&#xff1a;scenex.jina.ai 背景介绍 …

手机存储数据恢复软件哪个好用?试了10款,我只认准这一款!

案例&#xff1a;手机存储数据恢复软件哪个好用&#xff1f; 【有没有好介绍的苹果数据恢复软件&#xff1f;可以恢复好几年数据的那种软件&#xff1f;求推荐&#xff01;】 手机中的数据是用户平时使用手机时不可避免的内容&#xff0c;这些数据包括照片、视频、音乐、文件等…

Baumer工业相机堡盟工业相机如何通过BGAPISDK的软触发实现两相机同步采集(C++)

Baumer工业相机堡盟工业相机如何通过BGAPISDK的软触发实现两相机的同步采集&#xff08;C&#xff09; Baumer工业相机Baumer工业相机的高速同步采集的技术背景Baumer工业相机通过BGAPI SDK在回调函数里同步保存图像工业相机在回调函数BufferEvent保存工业相机使用软触发进行同…

【观察】华为:新一代楼宇网络,使能绿建智慧化

“碳达峰”、“碳中和”目标是我国生态文明建设和高质量可持续发展的重要战略安排&#xff0c;将推动全社会加速向绿色低碳转型。作为全球既有建筑和每年新建建筑量最大的国家&#xff0c;大力发展绿色建筑对中国全方位迈向低碳社会、实现高质量发展具有重要意义。 《“十四五”…