Enterprise Beans 核心定位
將商業邏輯置於 EJB 層,利用容器提供底層服務 (狀態/交易/執行緒管理、遠端資料存取、安全),程式碼專注解決業務問題。容器運行時建立管理 Bean,部署時配置交易/安全屬性,可部署至任何相容容器,實現可重用。
Enterprise Bean 結構
- 介面 + 類別組成
- 客戶程式透過 Home/Remote 介面存取
- Home:建立/刪除/定位;Remote:商業方法
- 部署時容器由介面產生類別
- Bean 類別實作:商業方法、建立/查找方法、生命週期方法 (BMP 時)
兩大 Bean 類型
Session Bean
- 代表與客戶程式的短暫會話,可執行資料庫讀寫
- 可直接用 JDBC 或透過 Entity Bean 存取資料
- 領域包含會話狀態,短暫性:伺服器/客戶端崩潰即遺失
- 類似 PL/SQL 等資料庫程式語言模式
Entity Bean
- 代表資料庫資料及操作方法
- 關聯式資料庫每列對應一 Bean
- 交易性、長壽命:資料存在 Bean 即存在
- 易對應關聯式資料庫,不限物件資料庫
Stateful vs Stateless Session Bean
| Stateful | Stateless |
| 狀態 | 包含客戶會話狀態 (實例欄位+引用物件) | 無特定客戶狀態 |
| 資料持久 | 不代表持久資料,但可存取/更新 | 提供無狀態服務 |
| 資源需求 | 較高 | 較低,可共享實例池 |
| 典型用途 | 購物車、多步驟流程 | 通用服務、共享資料視圖 |
替代輕量模式
- Data Access Object (DAO):代表客戶存取資料庫
- Value Object:封裝資料欄位,提供 get/set 存取
- 減少 Enterprise Bean 系統資源/頻寬佔用
持久化策略選擇
- Container-Managed Persistence (CMP):容器處理資料庫存取,Bean 程式碼無 JDBC API,容器完成載入/儲存
- Bean-Managed Persistence (BMP):Bean 實作 JDBC 2.0 API 於生命週期方法 (
ejbLoad/store),處理載入/儲存、一致性維護
- 非關聯式資料庫/企業資訊系統:必須用 BMP,代碼可能包含 JDBC、EIS API、存取對象、連線對象
通訊協議
- Web 層:HTTP/HTTPS
- EJB 層:RMI-IIOP — 完整分散式計算協議
- 客戶端/Web 層程式可直接存取 EJB 層服務:JNDI 查找、JMS 非同步訊息、JDBC 資料庫存取
- 上一篇文章: J2EE 與電子商務應用:優勢分析、適用性評估與決策指引
- 下一篇文章: J2EE 藍圖摘要八:寵物商店應用程式實戰導引
Copyright ©
程式碼之家 All Rights Reserved