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

EJB 入門 12 大困惑權威答疑:從組件模型到事務管理

     編輯:Java 相關知識

Q1: EJB 2.0 包含哪些角色?核心是什麼?

六大角色:Bean Provider、Application Assembler、Deployer、EJB Server Provider、EJB Container Provider、System Administrator。EJB 容器是核心,負責生命週期、事務、安全、持久化、池化等系統級服務。

Q2: JavaBean vs EJB

JavaBeanEJB
本質可復用組件,無嚴格規範分散式組件,嚴格規範
訪問進程內(本地)跨進程/跨機器(RMI-IIOP)
容器Web 容器EJB 容器
客戶端直接訪問實例透過 Stub/Proxy 訪問

Q3: 底層技術與 Bean 類型差異

  • 基礎:JNDI、RMI、JTA(非 JAT)
  • Session Bean:業務邏輯執行器,無狀態/有狀態
  • Entity Bean:持久化數據映射,CMP/BMP
  • Message-Driven Bean:異步消息消費者

Stateful vs Stateless:前者維護客戶會話狀態(專屬實例、佔內存),後者無狀態(實例池共享、高併發)。

Q4: 生命週期與事務管理

  • Stateless:容器決定創建/銷毀,方法級事務。
  • Stateful:客戶首次調用創建,@Remove 移除,支援擴展事務。
  • Entity:數據存在即存活,容器/Bean 管理持久化(CMP/BMP)。
  • 事務:容器管理(CMT,聲明式)或 Bean 管理(BMT,程式化),底層靠 JTS/JTA/OTS/XA。

Q5: 六角色三介面

Remote/Local、Home/LocalHome、Bean Class。Home 負責創建/查找/刪除,Remote 定義業務方法。

Q6: 容器服務清單

生命週期、代碼生成、持久化、安全、事務、鎖/併發、資源池、JNDI、遠程調用。

Q7: EJB 禁令

不得:操作線程、用 AWT/Swing、實現 ServerSocket、訪問靜態非 final 欄位、直接文件 IO、載入本地庫、傳遞 this、死循環調用。

Q8~Q12: 關鍵機制速記

  • 激活/鈍化:Stateful/Entity 依 LRU/MRU 算法序列化到磁盤/內存,回調 ejbPassivate/ejbActivate。
  • 三類 Bean:Session(Stateful/Stateless)、Entity(CMP/BMP)、MDB。
  • 客戶端調用四步:配置 JNDI → lookup Home → create() → 呼叫業務方法。

掌握這 12 條,EJB 核心知識體系基本成型。

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