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

Enterprise JavaBeans (EJB) 架構總覽 (一):歷史、目標與伺服器端 Java 演進

     編輯:Java 程式設計入門

前言

本文轉譯自 IBM developerWorks,旨在快速建立 EJB 技術全貌認知。第一部分涵蓋歷史背景、設計目標、優勢與核心技術棧。

EJB 技術簡史

  • 1998 年 3 月:EJB 1.0 發布,引入伺服器端元件模型
  • 1999 年:EJB 1.1,修正互通性、加強 XML 部署描述符
  • 2001 年:EJB 2.0,重大突破:本地介面、CMP 2.0 (關係映射)、訊息驅動 Bean (MDB)
  • 2003 年:EJB 2.1,Web Service 整合、計時器服務
  • 2006 年:EJB 3.0 (JSR 220),革命性簡化:POJO 程式模型、註解配置、JPA 整合、移除 Home 介面
  • 2009/2013/2017:EJB 3.1/3.2 (Java EE 6/7/8),單例、非同步、可攜式全域 JNDI 名稱

Sun 官方評價 (當年)

「EJB 伺服器透過為中介層服務 (事務、安全、資料庫連線等) 提供自動支援,降低了中介軟體開發複雜度。EJB 服務器端元件模型簡化了中介軟體元件開發,這些元件都是事務性的、可擴展的和可移植的。」

從 Applet 到伺服器端 Java 的演進

階段一:Applet 與應用程式 (JDK 1.0)

  • 焦點:Applet (瀏覽器端)、main() 應用程式
  • 伺服器端無專屬 API,CGI/Perl 主導 Web 後端

階段二:Servlet API (1997~)

  • Sun 發布 Java Servlet Specification
  • Servlet:運行於 Web 伺服器、請求-回應模型、HTTP 為基礎
  • 優於 CGI:進程內執行、執行緒模型、效能高、可移植
  • Servlet 容器 (Tomcat, Jetty, Resin) 可外掛至現有 Web 伺服器

階段三:EJB — 企業級中介層標準 (1998~)

  • Servlet 適合 Web 表現層,但缺乏企業級中介層服務:
  • 事務管理 (跨資源、分散式)
  • 安全性 (聲明式角色/權限)
  • 資源池化 (資料庫連線、JMS 連線)
  • 生命週期管理、狀態管理、遠端存取透明化
  • EJB 將 Java 元件概念從客戶端延伸至伺服器端,奠定 Java EE 基石

EJB 核心價值主張

維度傳統 CGI/早期 ServletEJB 架構
事務手動編碼 (JDBC commit/rollback)容器管理 (CMT) / Bean 管理 (BMT),聲明式
安全自行實作聲明式角色映射、JAAS 整合
持久化JDBC 手寫 SQLCMP (容器管理持久化) / BMP / JPA
遠端存取RMI/HTTP 自行實作RMI-IIOP/WS 透明遠端介面
資源管理手動連線池JNDI 查找 DataSource/JMS/Environment
可移植性低 (綁定容器實作)高 (標準 API + 部署描述符)

EJB 三種 Bean 型別

  1. Session Bean:業務邏輯封裝
    • Stateful (有狀態,專屬客戶)
    • Stateless (無狀態,共享池化,高擴展)
    • Singleton (單例,應用級共享狀態,EJB 3.1+)
  2. Entity Bean (EJB 1/2) / JPA Entity (EJB 3+):持久化領域模型
  3. Message-Driven Bean (MDB):非同步訊息消費者 (JMS 整合)

EJB 依賴的基礎 Java 服務

  • JTA (Java Transaction API) — 分散式事務
  • JNDI (Java Naming and Directory Interface) — 命名查找
  • JMS (Java Message Service) — 訊息傳遞
  • JCA (Java EE Connector Architecture) — EIS 整合
  • JAAS (Java Authentication and Authorization Service) — 安全
  • RMI-IIOP / CORBA — 分散式通訊

關鍵: 使用 EJB 不需精通 以上所有底層 API,容器負責整合與代管。

總結

EJB 代表 Java 進軍企業級計算的關鍵里程碑。從早期「重量級、複雜、XML 地獄」到 EJB 3 「POJO、註解、輕量、JPA 整合」,其演進折射出 Java EE 生態對開發者體驗與生產力的持續優化。雖然 Spring 框架曾以「更輕量」挑戰 EJB,但 EJB 3+ 已吸收並標準化了眾多 Spring 創新 (DI、AOP、JPA),現代 Jakarta EE / Spring Boot 雙強並存,共同推動 Java 企業級開發邁向雲原生時代。

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