首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

漫談 EJB 之 J2EE 十三大核心技術體系全景解析 (系列三):JDBC、JNDI、EJB、JSP、Servlet、JTA、JavaMail、JMS

     編輯:Java 相關知識

J2EE (Java EE / Jakarta EE) 技術棧全景圖

J2EE 定義了企業級應用開發的標準化技術集合。本文系統梳理十三大核心技術的定位、核心 API、交互關係與典型應用場景,構建全棧知識骨架。

1. JDBC (Java Database Connectivity) —— 數據訪問基石

  • 定位:統一關係數據庫訪問 API,屏蔽廠商差異。
  • 四類驅動:
    1. JDBC-ODBC Bridge (Type 1, 已廢棄)
    2. Native API (Type 2, 需客戶端庫)
    3. Network Protocol (Type 3, 中間件轉發)
    4. Pure Java (Type 4, 直接 TCP 協議,主流)
  • 核心接口:Driver, Connection, Statement/PreparedStatement/CallableStatement, ResultSet, DataSource (JDBC 2.0+)。
  • JDBC 2.0/3.0/4.0+ 亮點:連接池、分布式事務 (XA)、RowSet、自動驅動發現、XML/SQLXML 支持。

2. JNDI (Java Naming and Directory Interface) —— 命名與目錄統一訪問

  • 定位:統一訪問 DNS、LDAP、RMI Registry、COS Naming、文件系統、對象存儲等命名/目錄服務。
  • 核心概念:Context (目錄節點), InitialContext (入口), Binding (名稱-對象綁定), Reference (對象引用工廠)。
  • J2EE 中角色:資源查找總入口 — DataSource、EJB Home、JMS ConnectionFactory、環境變量、Mail Session 均通過 JNDI 邏輯名獲取 (java:comp/env/jdbc/MyDB)。
  • 操作:lookup, bind/rebind, unbind, list, createSubcontext。

3. EJB (Enterprise JavaBeans) —— 企業級業務組件模型

  • 核心價值:容器管理事務、安全、並發、持久化、遠程調用、生命週期 —— **開發者專注業務邏輯**。
  • 三大 Bean 類型:
    • Session Bean:業務流程建模 (動詞)。Stateless (無狀態、高並發、池化) / Stateful (會話狀態、單客戶) / Singleton (全局單例、啟動初始化)。
    • Entity Bean (EJB 1.x/2.x):持久化領域模型 (名詞),CMP/BMP。EJB 3.0+ 被 JPA 取代。
    • Message-Driven Bean (MDB):異步消息消費者,實現 MessageListener,容器管理事務/並發/確認模式。
  • 容器契約:部署描述符 (XML/Annotation) 聲明事務屬性 (Required 等)、安全角色、資源引用、CMR 關係。

4. JSP (JavaServer Pages) & Servlet —— Web 表現層雙子星

特性JSPServlet
本質HTML 模板 + Java 片段 → 編譯為 Servlet純 Java 類,實現 Servlet 接口,生成響應
優勢頁面設計師友好,關注展示邏輯複雜、二進制輸出、過濾器/監聽器
核心方法_jspService() (自動生成)service(), doGet(), doPost(), init(), destroy()
線程模型單實例多線程 (需線程安全)單實例多線程 (需線程安全)
  • 協作模式:Model 2 (MVC) — Servlet 做 Controller (分發、調用 Service),JSP 做 View (渲染 Model 數據)。
  • 隱含對象:JSP 九大隱含對象 (request, response, session, application, out, pageContext, config, page, exception) 本質為 Servlet API 封裝。

5. Java IDL / CORBA —— 異構系統互操作

  • 定位:Java 對象作為 CORBA 對象部署到 ORB,或 Java 客戶端調用非 Java CORBA 服務。
  • 核心流程:定義 IDL → idlj 生成 Java Stub/Skeleton/Helper/Holder → 實現 Servant → 部署到 ORB (如 Orbix, TAO, JDK 內置 ORBD)。
  • RMI-IIOP 橋接:EJB 遠程調用底層協議即 IIOP,實現 Java RMI API 與 CORBA 對象模型統一。

6. JTA (Java Transaction API) / JTS (Java Transaction Service) —— 分布式事務標準

  • JTA:應用層 API — UserTransaction (begin/commit/rollback), TransactionManager (容器/框架用), XAResource (資源管理器適配)。
  • JTS:CORBA OTS (Object Transaction Service) 的 Java 映射實現,底層協議為 IIOP,支持跨進程/機器的兩階段提交 (2PC)。
  • 事務管理器:協調多個 XAResource (數據庫、MQ、JCA) 參與全局事務。

7. JavaMail & JAF (JavaBeans Activation Framework) —— 郵件系統

  • JavaMail:抽象郵件模型 — Session, Message (MimeMessage), Transport (SMTP), Store (IMAP/POP3)。
  • JAF:處理 MIME 數據內容轉換 — DataHandler, DataSource, CommandMap。JavaMail 內部依賴 JAF 處理附件/多部分內容。

8. JMS (Java Messaging Service) —— 企業級消息中間件標準

  • 兩大模型:
    • Point-to-Point (Queue):一對一,負載均衡,消費者確認 (AUTO/CLIENT/DUPS_OK)。
    • Publish/Subscribe (Topic):一對多,發布-訂閱,持久訂閱 (Durable) 保證離線消息不丟失。
  • 核心接口:ConnectionFactory, Connection, Session, MessageProducer/Consumer, Message (Text/Map/Object/Bytes/Stream), Destination (Queue/Topic)。
  • 事務與確認:Session 事務 (commit/rollback) 或非事務確認模式。MDB 容器自動管理。

9. 其他關鍵技術 (J2EE 1.3/1.4 規範補充)

  • JCA (J2EE Connector Architecture):標準化接入 EIS (ERP、大型機、舊系統) 的資源適配器 (Resource Adapter),支持連接管理、事務流入、安全流入、工作管理。
  • JAXP (Java API for XML Processing):統一 DOM/SAX/StAX 解析器、XSLT 轉換器、XPath 查詢、Schema 驗證。
  • JAAS (Java Authentication and Authorization Service):可插拔認證 (LoginModule) 與授權 (Subject/Principal/Permission) 框架,J2EE 容器安全底層。
  • RMI-IIOP:EJB 遠程調用協議,已在系列二詳述。

技術棧交互關係圖 (簡化)

Client (Web/App)
    │
    ├─→ Servlet/JSP (Controller/View) ──→ JNDI Lookup
    │                                       │
    │                                       ├─→ DataSource (JDBC) ──→ Database
    │                                       ├─→ EJB Home (RMI-IIOP) ──→ Session/Entity Bean (Business Logic)
    │                                       │                               │
    │                                       │                               ├─→ JDBC / JPA (Persistence)
    │                                       │                               ├─→ JMS (Async Messaging)
    │                                       │                               └─→ JTA (Transaction Boundary)
    │                                       ├─→ JMS ConnectionFactory ──→ Queue/Topic (MDB)
    │                                       └─→ Mail Session (JavaMail) ──→ SMTP Server
    │
    └─→ RMI-IIOP / CORBA / Web Service (SOAP/REST) ──→ Legacy / Heterogeneous Systems

總結

J2EE 十三大技術構成了企業級應用的標準化骨架:**JDBC/JPA 訪問數據,JNDI 統一查找,EJB/Spring 封裝業務與事務,Servlet/JSP/MVC 處理 Web 請求,JMS 解耦異步流程,JTA 保障分布式一致性,JavaMail/JAF 處理通訊,JCA/IDL 連接異構系統**。現代 Jakarta EE / Spring Boot 繼承並簡化了這些規範,理解其本質關係,是架構師技術選型與故障診斷的核心內功。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved