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

EJB 核心術語速查手冊:從 Bean、Container 到 Transaction Attribute 的精準定義

     編輯:Java 相關知識

前言:術語統一是團隊協作的基石

EJB 領域擁有嚴格的術語體系,準確掌握概念邊界,是閱讀規範、溝通設計、排查問題的前提。本文梳理 12 個高頻核心術語,給出標準定義與關鍵辨析。

核心術語表

術語標準定義關鍵辨析 / 補充
Bean (Enterprise Bean) 企業級 Java Bean 縮寫。應用程序構建素材,包含:業務接口、生命週期接口、實現業務方法的類。 非 JavaBean。進程間分布式組件,駐留於 EJB 容器,提供遠程服務。
Bean Instance Bean 在容器中的具體實例化對象。 類比:Bean ≈ Class,Bean Instance ≈ Java Object。容器管理實例池/緩存。
Bean-Managed Persistence (BMP) Bean 自行管理持久化狀態。容器調用 ejbLoad() / ejbStore() 回調,Bean 內部編寫 JDBC/SQL 邏輯。 適用:複雜映射、存儲過程、非標準數據源。彈性大,開發量大。
Container 實現 Bean 的 Home/Remote 接口,提供:實例管理、方法攔截、事務完整性、實例池管理、安全、生命週期等系統級服務。 規範要求容器管理多種 Bean,實際常一容器一 Bean 類型。Bean 不直接實例化,由容器創建/管理。
Container-Managed Demarcation 容器管理事務邊界。調用業務方法時自動啟動事務,方法結束自動提交/回滾。事務屬性由部署描述符或方法聲明決定。 CMT(Container-Managed Transaction)核心機制。開發者無需編寫事務控制代碼。
Container-Managed Persistence (CMP) 容器負責 Bean 狀態持久化。Bean 通過 public field 暴露狀態,字段在部署描述符聲明,容器生成持久化代碼。 開發者無需寫 SQL/JDBC。適用標準關係映射。EJB 2.x 引入 EJB QL 查詢語言。
Entity Bean 代表可識別的持久業務對象。典型映射:關係數據庫行、文件系統文件、唯一可識別資源。 生命週期長,跨進程/伺服器重啟存活(數據在即對象在)。主鍵唯一標識。
Home Interface 每個 Bean(Session/Entity)必有的工廠接口。提供:創建、移除、查找(僅 Entity)實例的方法。繼承 EJBHome。 客戶端通過 JNDI 查找 Home,再調用 create/findByPrimaryKey 獲取 Remote。
Remote Interface 定義 Bean 業務方法集合的客戶端視圖接口。繼承 EJBObject。客戶端通過 Remote 調用業務邏輯。 RMI 規範。EJB 3.0 簡化為 POJO + @Remote/@Local 注解,不再強制繼承。
Session Bean 為特定客戶端創建,閒置超時後銷毀。不直接代表持久數據,封裝業務流程/工作流。 分Stateful(維護會話狀態、專屬實例)與Stateless(無狀態、池化複用)兩種。
Session Synchronization 可選接口,讓 Stateful Session Bean 接收事務邊界通知:beforeCompletion()(可否決)、afterCompletion(boolean)(知曉結果)。 僅 Stateful Bean 可實現。用於緩存同步、資源清理等事務邊界邏輯。
Transaction Attribute 指定 Bean/方法的事務傳播行為。六種值:
TX_NOT_SUPPORTED、TX_REQUIRED、TX_SUPPORTS、TX_REQUIRES_NEW、TX_MANDATORY、TX_BEAN_MANAGED。
可標註在 Bean 級(默認所有方法)或方法級(覆蓋默認)。EJB 3.0 以 @TransactionAttribute 替代。

術語關聯圖譜

Client → JNDI → Home → create/find → Remote → Business Methods
                ↑                              ↓
           Container ←── manages ── Bean Instance (Pool/Cache)
                ↑                              ↓
           Services: Tx, Security, Persistence, Lifecycle, Pooling

版本演進提示

  • EJB 3.0+:大幅簡化。Home/Remote 接口 → @Remote/@Local 注解;CMP → JPA Entity;部署描述符 → 注解/XML;BMT/CMT → @TransactionAttribute/管理。
  • 本表術語基於 EJB 2.x 經典模型,理解歷史模型有助於深度掌握現代框架底層語義。

總結

精準術語消除溝通歧義。建議團隊建立術語表作為設計文檔、代碼評審、問題單的共享語言基線。

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