Enterprise Bean 通過以下三種機制之一與容器互動:回調方法、EJBContext 介面或 JNDI。
回調方法:
每個 bean 都會實現 EnterpriseBean 介面的子類型,該介面定義了一些方法,稱作回調方法
。每個回調方法在 bean 的生命週期期間向它提示一個不同事件,當容器要合用某個 bean、
將其狀態儲存到資料庫、結束事務、從記憶體中除去該 bean 等操作時,它將調用這些方法來通
知該 bean。回調方法可以讓 bean 在事件之前或之後立即執行內部調整。
EJBContext:
每個 bean 都會得到一個 EJBContext 對象,它是對容器的直接引用。EJBContext 介面提供
了用於與容器互動的方法,因此那個 bean 可以請求關於環境的資訊,如其客戶機的身份或事
務的狀態,或者 bean 可以擷取它自身的遠端參照。
Java 命名和目錄介面 (JNDI):
JNDI 是 Java 平台的標準擴充,用於訪問命名系統,如 LDAP、NetWare、檔案系統等。每個
bean 自動擁有對某個特定命名系統(稱作環境命名內容 (ENC))的訪問權。ENC 由容器管
理,bean 使用 JNDI 來訪問 ENC。JNDI ENC 允許 bean 訪問資源,如 JDBC 串連、其它
Enterprise Bean,以及特定於該 bean 的屬性。
本地介面表示組件的生命週期方法(建立、破壞、尋找),而遠程介面表示 bean 的商業方法
。遠程和本地介面分別擴充 javax.ejb.EJBObject 和 javax.ejb.EJBHome 介面
EJB 對象和本機物件充當 bean 對象的代理,因為它們代表 bean 接收方法調用。EJB 對象主
要為 bean 業務方法充當代理;本機物件主要為 bean 生存周期方法充當代理。
會話 bean 通常具有以下屬性:
代表單個客戶機執行
可以是事務性的
可以更新共用資料庫中的資料
生存期相對較短
其生存期通常就是客戶機的生存期
任何持久性資料都由 bean 管理
可以依容器的判斷予以刪除
會在 EJB 伺服器失敗時被刪除
實體 bean 通常具有以下屬性:
代表資料庫中的資料
是事務性的
允許多個使用者共同訪問
可以長期存在
持久性資料可以由容器管理
在 EJB 伺服器失敗後能繼續生存