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

J2EE 基礎:EJB 核心技術全面解析

     編輯:Java 相關知識

EJB (Enterprise JavaBeans) 核心技術完整指南

什麼是 EJB?

EJB 是 Java EE 中的企業級業務組件技術,與 Servlet、JSP 並列為 Java EE 三大組件。EJB 提供分布式對象訪問框架,極大簡化可擴展企業應用開發。

  • 核心價值:屏蔽系統級底層服務(持久化、生命週期、安全、事務、遠程通訊、併發、集群、負載均衡),讓開發者專注業務邏輯
  • 運行環境:必須部署在 EJB 容器中(如 JBoss、WebLogic、WebSphere)
  • 通訊機制:客戶端通過存根與骨架進行透明遠程調用

EJB 容器與組件通訊原理

容器職責:實例管理、生命週期、安全、事務、遠程通訊、併發、集群負載均衡

通訊流程:

  1. EJB 實例被封裝在骨架對象中
  2. 客戶端持有存根,調用業務介面方法
  3. 存根將網絡消息發送給骨架
  4. 骨架調用 EJB 實例對應方法
  5. 結果經骨架→存根→客戶端返回

存根與骨架由容器自動生成,開發者無需編寫通訊代碼。

EJB 分類

類型子類型特點
會話 Bean 無狀態 不保持會話狀態,實例可共享,效能最高
有狀態 保持客戶端會話狀態,一客戶端一實例,支援鈍化/激活
單例 應用級單一實例,支援併發訪問,不鈍化
訊息驅動 Bean - 處理異步訊息(JMS),無客戶端介面,由容器監聽隊列觸發

各類型生命週期詳解

1. 無狀態會話 Bean

狀態:不存在 → 存在

  1. 容器創建實例 → 依賴注入 → @PostConstruct → 就緒
  2. 客戶端調用業務方法
  3. 容器調用 @PreDestroy → 銷毀實例 → 不存在

實例池化管理,高效復用。

2. 有狀態會話 Bean

狀態:不存在 → 就緒 → 鈍化 → 就緒 → 不存在

  1. 創建流程同無狀態
  2. 閒置超時:@PrePassivate → 序列化狀態到存儲 → 從內存移除(鈍化)
  3. 再次請求:反序列化恢復狀態 → @PostActivate → 就緒(激活)
  4. 最終銷毀:@PreDestroy

3. 單例會話 Bean

狀態:不存在 → 存在(應用啟動時創建,關閉時銷毀)

無鈍化/激活,支援併發訪問(@Lock 控制鎖策略)。

4. 訊息驅動 Bean

狀態:不存在 → 存在

  • 實現 MessageListener 介面
  • 容器創建實例池,檢測到隊列消息調用 onMessage()
  • 無客戶端直接調用,純異步處理

EJB 3.x 簡化開發

  • 基於註解配置(@Stateless、@Stateful、@Singleton、@MessageDriven)
  • 依賴注入(@EJB、@Inject)
  • 攔截器(@AroundInvoke)實現橫切關注點
  • 無需 Home/Remote 介面,POJO 即可

總結

EJB 是構建分布式企業應用的核心組件模型,容器托管機制極大降低系統級複雜度。現代 EJB 3.x 配合 CDI、JPA 等規範,開發體驗大幅提升,仍是大型金融、電信級系統的主流選擇。

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