六大角色:Bean Provider、Application Assembler、Deployer、EJB Server Provider、EJB Container Provider、System Administrator。EJB 容器是核心,負責生命週期、事務、安全、持久化、池化等系統級服務。
| JavaBean | EJB | |
|---|---|---|
| 本質 | 可復用組件,無嚴格規範 | 分散式組件,嚴格規範 |
| 訪問 | 進程內(本地) | 跨進程/跨機器(RMI-IIOP) |
| 容器 | Web 容器 | EJB 容器 |
| 客戶端 | 直接訪問實例 | 透過 Stub/Proxy 訪問 |
Stateful vs Stateless:前者維護客戶會話狀態(專屬實例、佔內存),後者無狀態(實例池共享、高併發)。
Remote/Local、Home/LocalHome、Bean Class。Home 負責創建/查找/刪除,Remote 定義業務方法。
生命週期、代碼生成、持久化、安全、事務、鎖/併發、資源池、JNDI、遠程調用。
不得:操作線程、用 AWT/Swing、實現 ServerSocket、訪問靜態非 final 欄位、直接文件 IO、載入本地庫、傳遞 this、死循環調用。
ejbPassivate/ejbActivate。掌握這 12 條,EJB 核心知識體系基本成型。