1 :認識EJB
EJB( EnterpriseJavaBean)是J2EE13個標準之一。它定義了一個用於開發基於組件的企業多重應用程式的標準。它是javaBean的組織和發展,javaBean就像是.NET中的dll。EJB標準包括:
可擴充 (Scalable)
分布式 (Distributed)
交易處理 (Transactional)
資料存放區 (Persistent)
安全性 (Secure)
由於EJB是用於開發企業商務邏輯部分。所以不涉及顯示資料部分的技術。這就要求使用EJB的同時必須和J2EE的其它標準一起使用。比如前面提到的servlet,jsp技術等。
這裡所說的EJB只是一個標準,這個標準規定開發必須要實現的一些功能和服務。要想使用這個標準必須有相應的產品去實現它。比如weblogic伺服器就是一個實現EJB的產品。實現了 EJB規範的應用伺服器提供了可以解決安全性、資源共用、持續運行、平行處理、事務完整性等複雜問題的服務,從而簡化了商業應用系統。這裡的意思就是如果你要編寫一個商業系統,比如銀行等系統。你就不需要為處理並行,事務,安全等編寫代碼了。這樣會浪費你的精力,而且這些代碼基本上都是一樣的。如果你使用實現了EJB的伺服器,這些功能伺服器廠商就給你編寫好了。
一套EJB涉及到三個角色:開發編程人員(也就是你),標準供應商(sun),伺服器供應商(例如IBM實現了EJB標準)。
2 :EJB構成
EJB有三種類型的bean構成(bean的意思就是java的組件)。會話Bean(Session Bean),體Bean(EntityBean)和訊息驅動Bean(MessageDriven Bean)。
實現應用程式的控制、處理和工作流程,在MVC中,會話Bean處理Control。代表單個用戶端來執行,當EJB 容器失效後就不存在。分為有狀態會話bean和無狀態會話bean。例如計算機,購物車等。
- 實體bean
實體Bean表示持久資料的物件檢視,如資料庫中的一個資料行。實體Bean有一個就像資料庫中的主鍵一樣,唯一地標識一個實體Bean。如一個訂單資訊等。
- 訊息驅動bean
訊息驅動Bean(MDB) 是設計用來專門處理基於訊息請求的組件。是處理非同步處理的組件。它是JMS和EJB的結合。
- 幾種EJB實現的介面和特性比較.Stateless(無狀態的)Stateful (有狀態的)
3: EJB調用模型
下面介紹用戶端調用EJB的方式,描述普通調用模型,這種模型主要適用於會話Bean的調用。這裡考慮遠程用戶端的調用。下面是遠程用戶端調用企業Bean的步驟。
(1)開始時,遠程用戶端需要定位業務組件,並獲得組件引用。
(2)用戶端使用JNDI尋找服務,以檢索Bean的home對象的引用。
(3)用戶端收到引用。
(4)用戶端請求home對象建立或尋找企業Bean。
(5)home對象建立或尋找企業Bean。
(6)作為結果,返回EJB對象的引用。
(7)用戶端使用引用,通過EJB對象調用業務方法。
(8)或者,在調用Bean的業務方法前,EJB對象可能會使用其他服務。
(9)EJB對象最終調用Bean的業務方法。在成功運行業務方法後,將結果返回到EJB對象。
(10)EJB對象將結果返回用戶端。
4: EJB和其它組件的關係
EJB和其它組件的關係用一張圖來形容最恰當。
具體說來就是用戶端通過servlet,JSP發送請求。該請求通過JMS傳達到相應的MDB。MDB再喝會話bean、實體bean互動。會話bean和實體bean通過JDBC操作資料庫,得到資訊。再返回給用戶端。其中可能用到事務,安全的一些EJB特性。
Servlet,JSP,EJB這三個技術三J2EE技術的核心部分。理解和掌握這三個技術對於J2EE的學習至關重要。