Java EE與Jakarta EE命名空間區別

在 Java 生態中,javax?和?jakarta?代表了?企業級 Java 規范(Java EE/Jakarta EE)的命名空間演進,核心區別在于歸屬權和管理組織的變更。以下是詳細對比:


1.?歷史背景

  • javax
    源自?Java EE(Java Enterprise Edition),由?Sun Microsystems(后被 Oracle 收購)?定義。包路徑如?javax.servlet.*javax.persistence.*?等,是?2019 年之前?的標準命名空間。

  • jakarta
    2017 年,Oracle 將 Java EE 移交給?Eclipse 基金會。因商標限制,基金會將其重命名為?Jakarta EE。從?Jakarta EE 9(2020 年發布)?開始,所有規范包名改為?jakarta.*(例如?jakarta.servlet.*)。


2.?變更原因

  • 法律與商標問題
    Oracle 禁止 Eclipse 基金會繼續使用?javax?包名和 "Java" 品牌,迫使命名空間遷移。

  • 獨立發展
    Jakarta EE 需要擺脫 Oracle 的控制,以開放模式推動創新(如支持微服務、云原生)。


3.?技術影響

維度javaxjakarta
兼容性僅支持 Java EE 8 及更早版本Jakarta EE 9+ 的強制要求
包路徑示例javax.servlet.HttpServletjakarta.servlet.HttpServlet
遷移成本舊項目無需改動舊項目升級需全局替換包名(破壞性變更)
應用服務器Tomcat 9, WildFly 20(Java EE 8)Tomcat 10+, WildFly 27+(Jakarta EE 9+)

📌?注意:Jakarta EE 9 是首個不兼容舊版的版本,必須修改代碼中的?javax?→?jakarta


4.?如何遷移?

  1. 手動替換
    修改源碼中的導入路徑(例如?javax.servlet?→?jakarta.servlet)。

  2. 自動化工具
    使用 Eclipse 基金會提供的?Eclipse Transformer?工具自動轉換。

  3. 依賴調整
    更新 Maven/Gradle 依賴(例如?javax:javaee-api?→?jakarta.platform:jakarta.jakartaee-api)。


5.?現狀與未來

  • 并行存在
    老項目仍用?javax(如銀行系統),新項目必須用?jakarta(Jakarta EE 9+)。

  • 規范演進
    Jakarta EE 10+ 新增特性(如 CDI Lite、異步 REST)僅通過?jakarta.*?提供。

  • 框架支持
    Spring 6 / Spring Boot 3+ 已全面轉向 Jakarta EE 9+(棄用?javax)。


總結

關鍵點javaxjakarta
歸屬Oracle / Java EEEclipse 基金會 / Jakarta EE
時代舊標準(≤2019)新標準(≥2020)
定位歷史技術棧未來企業級 Java 的唯一方向
開發建議舊系統維護所有新項目必須使用

💡 簡單來說:javax?是過去,jakarta?是未來。升級到 Jakarta EE 是擁抱云原生和現代 Java 生態的必經之路。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/87139.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/87139.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/87139.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2 Studying《Arm A715 Technical Reference Manual》

目錄 2. The Cortex?A715 core 2.1 Cortex?A715 core features 2.2 Cortex?A715 core confifiguration options 2.3 DSU-110 dependent features 2.4 Supported standards and specifications 2.6 Design tasks 3. Technical overview 3.1 Core components 3.2 Int…

使用Nodejs嘗試小程序后端服務編寫:簡單的待辦事項管理demo

文章目錄 結構demo步驟demo運行效果API測試(1) 添加待辦事項(2) 獲取所有待辦事項(3) 切換完成狀態(4) 刪除待辦事項 API測試-RESTClient一些其他的高級功能環境變量管理不同環境配置授權認證 測試需要登錄的接口保存響應測試腳本編寫自動化測試 bug解決 結構 嘗試寫一個簡單的…

CSS“多列布局”

多列布局是一種非常常見的布局方式,適用于內容豐富的頁面,如新聞網站、雜志或博客。 一、CSS多列布局概述 CSS多列布局允許我們將內容分成多個垂直列,使頁面布局更加靈活和多樣化。多列布局的主要屬性包括 ??column-count??、??col…

Pump上狙擊機制的功能優勢和實戰教學

加密世界的發展永遠伴隨著速度的革命。無論是新的 Token 上線,還是熱點項目的第一波流動性注入,搶先一步往往意味著利潤的幾何級增長。在這個講究「秒殺」與「先機」的賽道中,一項關鍵策略正悄然成為鏈上操作者的常規武器——狙擊&#xff08…

條件收斂的級數中項必須趨于 0,正負項抵消,但趨于 0 的速度不需要“足夠快”

條件收斂的級數中,項必須趨于 0,但趨于 0 的速度不需要“足夠快”的原因可以從以下幾個方面理解: 1. 收斂的必要條件:項趨于 0 對于任何收斂的級數(無論是絕對收斂還是條件收斂),都必須滿足 li…

Tomcat 和 Spring MVC

Tomcat 和 Spring MVC 是 Java Web 開發中兩大核心組件,分別承擔不同的角色: 一、Tomcat 定義 Apache Tomcat 是一個開源的 Servlet 容器(也稱為 Servlet 引擎)+ JSP 引擎,實現了 Java EE(現稱 …

【微服務】134:SpringCloud

今天是劉小愛自學Java的第134天。 感謝你的觀看,謝謝你。 image 學習內容安排如下: SpringCloud的接觸。利用SpringCloud搭建微服務架構,當然這個估計要3天時間才能完成,今天主要是注冊中心Eureka的學習。 一、SpringCloud 微服務…

三次貝塞爾曲線,二次貝塞爾曲線有什么區別

三次貝塞爾曲線和二次貝塞爾曲線在控制點數量、數學表達式和曲線復雜度上有所不同。以下是它們的主要區別: 1. 控制點數量 二次貝塞爾曲線:由3 個點定義(起點、終點和 1 個控制點)。三次貝塞爾曲線:由4 個點定義&…

springboot集成dubbo

BeanDefinitionRegistryPostProcessor public interface BeanDefinitionRegistryPostProcessor extends BeanFactoryPostProcessor {/*** 允許開發者在Spring容器加載Bean定義(BeanDefinition)后,實例化Bean之前,動態修改或注冊新的BeanDefinition* 該接…

Seata 全面深入學習指南

Seata 全面深入學習指南 學習目錄 第一部分:Seata 基礎篇 分布式事務基礎概念Seata 概述與核心架構Seata 部署與快速入門第二部分:Seata 核心機制 Seata 事務模式詳解 AT 模式TCC 模式SAGA 模式XA 模式Seata 事務協調機制Seata 高可用設計第三部分:Seata 高級特性 Seata 配…

【Linux】基于策略模式的簡單日志設計

📝前言: 這篇文章我們來講講Linux——基于策略模式的簡單日志設計 🎬個人簡介:努力學習ing 📋個人專欄:Linux 🎀CSDN主頁 愚潤求學 🌄其他專欄:C學習筆記,C語…

C#引用傳遞代碼記錄

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace 值傳遞和引用傳遞 {internal class Program{static void Main(string[] args){person P1new person();P1.name "張三";person P2 …

React動態渲染:如何用map循環渲染一個列表(List)

React動態渲染:如何用map循環渲染一個列表(List)? 系列回顧: 在上一篇中,我們學習了如何通過onClick等事件處理,讓React應用響應用戶的操作。現在我們的組件已經能“聽懂話”了。但是,目前為止我們展示的內…

React Native【實戰范例】水平滾動分類 FlatList

import React from "react"; import { FlatList, SafeAreaView, StyleSheet, Text, View } from "react-native"; interface itemType {id: string;title: string;icon: string; } // 水平滾動數據 const horizontalData: itemType[] [{ id: "1"…

iOS swiftUI的實用舉例

SwiftUI 是 Apple 推出的聲明式 UI 框架,以下是一些實用技巧和最佳實踐,可以幫助你更高效地開發 iOS/macOS/watchOS/tvOS 應用。 1. 布局技巧 靈活的空間占用 // 使用 Spacer 填充可用空間 HStack {Text("Left")Spacer() // 填充中間空間 …

SpringMVC異步處理Servlet

使用SpringMVC異步處理Servlet解決的問題 可以不阻塞有限的tomcat 線程(默認是200~250個,springboot3是200個),確保網絡請求可以持續響應特定業務使用自定義線程池,可以處理的業務量更大對上層業務完全無感知&#xf…

同步與異步編程范式全景研究——從CPU時鐘周期到云原生架構的范式演進

第一章 時空觀的根本分歧 1.1 物理時間的約束性 同步操作的本質是對牛頓絕對時間的服從,其阻塞特性源于馮諾依曼體系下指令順序執行的基因。現代CPU的流水線技術(如Intel Hyper-Threading)通過指令級并行實現偽異步,但開發者仍需…

【零散技術】5分鐘完成Odoo18 登陸頁面全自定義

序言:時間是我們最寶貴的財富,珍惜手上的每個時分 從最初的tinyERP到Open ERP,再由OpenERP到Odoo,雖然UI已經過了多次大改,Odoo登錄界面依舊丑陋,同時還有各種Odoo版權信息,對于定制項目而言是不友好的。 今天以Odoo18…

Vue3 + TypeScript + Element Plus + el-pagination 分頁查詢實例分享

前端技術棧&#xff1a;Vue3 TypeScript Element Plus el-pagination 后端技術棧&#xff1a;Java Spring Boot Mybatis 應用異常情況說明&#xff1a;點擊頁碼2&#xff0c;會發送兩次請求&#xff0c;并且自動跳回頁碼1 代碼&#xff1a; Reagent.vue <script set…

LoadRunner 2023 安裝部署

下載地址&#xff1a;鏈接: https://caiyun.139.com/w/i/2nQQRYCZ1Ssjl 提取碼:3gz0 復制內容打開139-云盤 主要下載Micro_Focus_LoadRunner_2023_Community_Edition.exe來安裝就可以。 如要漢化&#xff0c;則再下載安裝Language_Packs.exe的安裝包 說明&#xff1a;LoadR…