J2EE(Java 2 Platform, Enterprise Edition)定義了企業級應用開發的標準化技術集合,現已演進為 Jakarta EE。本文梳理經典十三大規範核心要點,構建全棧知識地圖。
統一數據庫訪問 API,屏蔽底層驅動差異,實現平台無關持久化。
| 類型 | 名稱 | 原理 | 優缺點 |
|---|---|---|---|
| Type 1 | JDBC-ODBC Bridge | JDBC → ODBC → DB | 早期過渡,依賴客戶端 ODBC,失去跨平台性 |
| Type 2 | Native-API Driver | JDBC → Native DB API | 需安裝客戶端庫,非純 Java |
| Type 3 | Network-Protocol Driver | JDBC → Middleware → DB | 無客戶端安裝,支持連接池/負載均衡,適合 Internet |
| Type 4 | Thin Driver (Pure Java) | JDBC → DB 協議直連 | 純 Java、零部署、高性能,現代標準選擇 |
統一命名/目錄服務訪問 API,屏蔽 LDAP、DNS、RMI Registry、文件系統等異構目錄差異。
InitialContext 獲取根 Context,lookup() 查找資源(DataSource、EJB Home、JMS Queue 等)。分布式業務邏輯組件模型,容器托管事務、安全、持久化、並發、生命周期。
| 類型 | 職責 | 狀態 | 典型場景 |
|---|---|---|---|
| Session Bean | 業務流程建模(動詞) | Stateless / Stateful | 定價引擎、工作流、信用認證 |
| Entity Bean | 持久化數據建模(名詞) | 容器管理/Bean 管理持久化 | 產品、訂單、員工、股票 |
| Message-Driven Bean | 異步消息處理 | 無狀態 | 訂單處理、庫存同步、通知推送 |
無狀態:單次調用、無會話狀態、池化複用、高擴展。
有狀態:維護會話狀態、專屬客戶端、購物車典型場景。
HTML + Java 片段,服務端編譯為 Servlet,動態生成頁面。非程序員可編寫展示邏輯,平台無關替代 ASP。
純 Java 編寫服務端組件,擴展 Web 服務器功能。對比 CGI:線程模型替代進程模型,輕量高擴展。核心繼承 HttpServlet,覆寫 doGet/doPost/service。
Java 對象與 CORBA ORB 互操作,支持異構系統集成(C++、COBOL 等舊系統)。
UserTransaction),支持分布式事務(XA 協議)。面向消息中間件統一 API,支持兩種域模型:
特性:事務消息、持久化、確認機制、優先級。
跨平台數據交換標準,與 Java 結合實現配置、數據傳輸、Web Services (SOAP) 基礎。
Java 分布式對象調用,EJB 遠程接口底層協議,支持 CORBA 互操作。
應用服務器與企業信息系統 (ERP、大型機) 連接標準,資源適配器模型。
數據內容類型識別與處理框架,JavaMail 附件處理依賴。
雖非 J2EE 正式規範,但長期統治國內企業級開發:
J2EE → Java EE → Jakarta EE (Eclipse 基金會),模組化、雲原生友好。MicroProfile 針對微服務優化(Config、Fault Tolerance、Health、Metrics、OpenAPI、Rest Client、JWT Auth)。