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

JavaBean 與 Enterprise JavaBean (EJB) 核心區別解析

     編輯:Java 相關知識

核心定位差異

維度JavaBeanEnterprise JavaBean (EJB)
運行環境客戶端/桌面/瀏覽器 (本地進程)應用服務器容器 (遠程/分布式)
可視性通常可視 (按鈕、表格、圖表等 UI 組件)非可視業務組件
部署形式獨立程序、ActiveX、Applet、JAREAR/JAR 部署到 EJB 容器
服務質量無內置服務,自行管理容器提供事務、安全、持久化、並發、生命周期管理
訪問方式本地直接調用遠程接口 (RMI/IIOP/Web Services)
開發職責業務邏輯 + 界面交互純業務邏輯,基礎設施授權給容器

JavaBean 核心特徵

  • 遵循命名規約:無參構造器、私有字段 + 公有 getter/setter。
  • 支持 BeanInfo / PropertyDescriptor 實現可視化構建工具集成。
  • 可序列化 (Serializable) 支持持久化/網絡傳輸。
  • 事件模型:add/removeXxxListener 支持觀察者模式。
  • 部署靈活:桌面應用、Applet、ActiveX 控件、JSP 標簽庫組件。

EJB 核心架構

三類 Bean

  • Session Bean:業務流程控制,有狀態/無狀態。
  • Entity Bean:持久化領域對象 (EJB 3.0 後由 JPA 替代)。
  • Message-Driven Bean:異步消息處理。

容器管理服務 (聲明式)

  • 事務管理:@TransactionAttribute 定義邊界 (Required/RequiresNew 等)。
  • 安全授權:@RolesAllowed、@RunAs 基於角色訪問控制。
  • 並發控制:容器管理實例池、線程安全。
  • 持久化:CMP (容器管理) 或 BMP (Bean 管理),現代用 JPA。
  • 依賴注入:@EJB、@Resource 注入資源/其他 Bean。

部署描述符 vs 註解

早期用 ejb-jar.xml,EJB 3.0+ 主流用註解 (@Stateless 等),部署工具讀取元數據生成存根/骨架代碼。

協作模式:JavaBean + EJB

典型電子商務場景:

  1. 瀏覽器/桌面 JavaBean (購物車、商品展示組件) 捕獲用戶操作。
  2. 提交訂單時調用服務器 EJB (訂單處理、支付、庫存扣減)。
  3. EJB 完成事務性業務,返回結果給 JavaBean 更新界面。

優勢:UI 邏輯與業務邏輯分離,EJB 可集群部署實現高可用/擴展,JavaBean 專注用戶體驗。

ActiveX 部署差異

  • JavaBean 可打包為 ActiveX (如 Beans.instantiate + COM 橋接) 運行於 IE/Windows。
  • EJB 本身不可成 ActiveX (服務器端組件),但其代理/門面可封裝為 ActiveX 提供給桌面調用。

WebSphere / EJB 容器增值

IBM WebSphere "Component Broker" 提供超越 EJB 規範的企業級能力:

  • 負載均衡、服務器集群、故障轉移。
  • 高級系統管理、性能監控。
  • 舊系統集成適配器 (CICS、IMS、DB2 等)。
  • 全局命名服務、對象事務管理器 (OTS)。

選型指南

  • 需分布式、事務、安全、高併發、集群 → EJB。
  • 本地 UI 組件、簡單數據封裝、工具可視化構建 → JavaBean。
  • 現代架構常用 POJO + Spring (提供類似 EJB 服務) 替代傳統 EJB,但 EJB 仍是 Java EE 標準核心。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved