Enterprise Bean

Enterprise Bean 是一種可結合其他資源來建立 Java™ 應用程式的 Java 元件。Enterprise Bean 的類型有三種:Entity Bean、階段作業 Bean 和訊息驅動 Bean。

所有 Bean 都位於 Enterprise JavaBeans (EJB) 儲存器中,其會提供 Bean 和所在應用程式伺服器之間的介面。

EJB 2.1 和舊版的規格將 Entity Bean 定義成儲存永久資料的方法,因此其需要某種形式之持續性儲存區的連線。這個儲存體可能是資料庫、現有的舊式應用程式、檔案或其他類型的持續性儲存庫。

EJB 3.0 規格淘汰了 EJB 1.1 樣式的 Entity Bean。Java 持續性 API (JPA) 規格目的是取代已淘汰的 Enterprise Bean。 雖然 JPA 置換項目稱為實體類別,但其不應與 Entity Enterprise Bean 混淆。JPA 實體不是 Enterprise Bean,也不需要在 EJB 儲存器中執行。

Session Bean 通常包含應用程式的高階及中階商業邏輯。Session Bean 上的每一個方法都會執行特定的高階作業。例如,送出訂單或在帳戶之間轉帳。 在 Session Bean 的商業邏輯過程中,Session Bean 通常會對 Entity Bean 呼叫方法。

階段作業 Bean 可以是 stateful、stateless 或 singleton。 在 Stateful Bean 實例的生命期限內,Stateful Bean 專供單一用戶端使用,於該用戶端的使用期間,該用戶端會在這個實例上執行彼此相關的一系列方法呼叫。其中一個例子是購物車,其用戶端會在線上購物階段作業期間,將一些項目加入購物車。相對地,在 Stateless Bean 實例的生命期限內,通常是由許多用戶端使用這個實例,所以 Stateless Bean 適合能在單一方法呼叫期間內完成的商業邏輯作業。只有在絕對必要時,才應使用 Stateful Bean。使用 Stateless Bean 可增進除錯、維護及調整應用程式的功能。

EJB 3.1 規格引進了 Singleton Session Bean。 EJB 儲存器只會起始設定 Singleton Session Bean 的單一實例,所有用戶端都共用這個實例。 由於所有用戶端都共用單一實例,Singleton Session Bean 有特殊的生命週期及並行語意。 Singleton Session Bean 可以有商業本端、商業遠端和 Web 服務用戶端視圖,但不能有 EJB 2.1 本端或遠端用戶端視圖。

EJB 3.x 規格支援 Stateless 和 Stateful Session Bean。其遵循一種簡單的型樣,如:
  • 定義商業介面。
  • 定義用來實作的類別。
  • 新增含有註釋或 XML 部署描述子的 meta 資料。
簡式 EJB 3.x Stateful Session Bean 的結果看起來如下:
package ejb3demo;

@Stateful
public class Cart3Bean implements ShoppingCart {
    private ArrayList contents = new ArrayList();
    
public void addToCart (Object o) {
		contents.add(o);
    }

public Collection getContents() {
    return contents;

    }
}
EJB 元件可以使用 @EJB 之類的註釋,以及其他可注入的 @Resource 參照(如果模組是 EJB 3.x 模組)。

Web 應用程式用戶端和應用程式用戶端可以使用部署描述子定義的 EJB 參照。如果該參照是用於不含 Home 介面的 EJB 3.x Session Bean,該參照應該在部署描述子中定義成空值的 <home> 或 <local-home> 設定。

Web 應用程式用戶端和應用程式用戶端也可以使用 @EJB 注入項目,作為相同企業保存檔 (EAR) 內之 EJB Session Bean 的參照;但是連結必須使用儲存器內的「自動鏈結」支援,或是註釋必須使用部署描述子所定義的參照名稱,並於安裝應用程式時加以連結。如需「自動鏈結」的相關資訊,請參閱「EJB 3.x 應用程式連結支援」主題。

訊息驅動 Bean 啟用非同步傳訊服務功能。
  • EJB 儲存器和「Java 訊息服務 (JMS)」提供者會一起處理訊息。當來自另一個應用程式元件的訊息經由 JMS 送達時,EJB 儲存器會透過 onMessage 方法呼叫將它轉遞給訊息驅動 Bean 實例,接著由這個實例來處理訊息。在其他方面,訊息驅動 Bean 非常類似 Stateless Session Bean。
  • EJB 儲存器和 Java 連接器架構 (JCA) 資源配接器會一起處理來自企業資訊系統 (EIS) 的訊息。當 EIS 傳來訊息時,資源配接器會接收訊息並將訊息轉遞給訊息驅動 Bean,再由該 Bean 處理訊息。和 EJB 儲存器提供服務給其他 Enterprise Bean 一樣,EJB 儲存器也提供服務給訊息驅動 Bean,例如交易支援。

需要存取資料的 Bean 會使用資料來源,這些資料來源是負責定義通往持續性儲存庫機制的連線儲存區之管理資源。


指出主題類型的圖示 概念主題



時間戳記圖示 前次更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cejb_main
檔名:cejb_main.html