帶你走進EJB--它都有哪些Bean

 

         經過前面一系列EJB的博客,咱們已經對EJB有了一個宏觀的瞭解.爲夠更好的在企業項目中使用EJB,咱們頗有必要對EJB的一些基本內容進行深刻,此次咱們主要進行的主題是Enterprise Java Bean 中都有哪些Bean?java

         EJB中主要有如下三種類型的Bean,分別是數據庫

  • Session Beans
  • Message-Driven Beans
  • Entities Beans

        

         每種類型的Bean都可以提供特定類型的服務.這三種分類可以幫助咱們更好的去理解並組織一個應用程序.例如,Bean的這些類型可以讓咱們基於分層的架構來開發應用.架構


         Session Beans Message-Driven Beans(MDBs)用來建立業務邏輯,它們是由EJB容器來管理生命週期.Entities Beans是數據持久化的模型.跟容器同樣,Entities Beans是經過Persistence provider(持久性提供者)來進行管理的.less

 

           接下來咱們經過一張圖來總結上面所闡述的內容.同時也是對EJB類型的一個歸納.異步

計算機生成了可選文字:ManagedbytheCOntain6rEJB3士SeSSionbeanMessage一drivenbeanJPAEntityManagedbytheEntityManagerlpersistenceprovider

 

 

        這裏須要注意的是Java Persistence API EJB3 的容器是徹底分開的.ide

 

SessionBeansspa

 

         一個會話Bean實例是客戶端調用一個特定業務操做的結果,好比檢查客戶的訪問歷史.共有兩種類型的Session Beans,有狀態的會話Bean和無狀態的會話Bean..net

         有狀態的SessionBean只爲一個用戶來服務,而且可以自動記錄用戶的狀態同時你也不須要去寫額外的代碼.一個簡單的例子就是你在淘寶購物所用的購物車的過程.code

         無狀態的SessionBean是不會保存的信息的和狀態,無狀態的SessionBean是能夠重用的,它不會被馬上銷燬.一個簡單的例子就是你在淘寶購物所用到的查詢購物記錄的過程.對象

         Session Beans能夠經過JavaRMI來進行本地或者遠程調用.無狀態的會話Bean還能夠發佈成Web Service.

 

 

有狀態的Beans和無狀態的Beans有什麼區別呢?

 

        

        這兩種Session Bean均可以將系統邏輯放在方法之中執行,不一樣的是 Stateful Session Bean 能夠記錄呼叫者的狀態,所以一個使用者會有本身的一個實例。

        Stateless Session Bean 雖然也是邏輯組件,可是他卻不負責記錄使用者狀態,也就是說當使用者呼叫 Stateless Session Bean 的時候,EJB  容器並不會尋找特定的 Stateless Session Bean 的實體來執行這個method 換言之,極可能數個使用者在執行某個 Stateless Session Bean methods 時,會是同一個 Bean的實例在執行。


        從內存方面來看,Stateful Session Bean StatelessSession Bean 比較,Stateful Session Bean 會消耗 J2EE Server 較多的內存,然而 Stateful Session Bean 的優點卻在於他能夠維持使用者的狀態。

 

Message-DrivenBeans

 

         Message-Driven Beans (MDBs)Session Bean同樣,都是用來處理業務邏輯.可是MDBs很是不一樣於Session Beans是客戶端不會直接調用MDB的方法.MDB會被髮到消息服務的消息所觸發,它可以在不一樣的系統組件之間進行異步消息傳輸.有不少的消息服務例如:IBMWebSphere MQ, SonicMQ, OracleAdvanced Queueing, and TIBCO.MDB的一個簡單例子是在淘寶中你請求查詢相關寶貝的物流信息.

 

Entities


        Entities是可以持久化到數據庫的那些java對象.EJB3 其中一個新特徵就是可以處理持久化,關於什麼是持久化能夠參考個人博客:Hibernate 之 PersistenceEJB的持久化是經過JPA來進行管理的.它可以自動的將Java對象經過ORM技術持久化.

 

       至此,咱們已經對EJB各個組成部分有了深一步的瞭解,知道在EJB中都有哪些Bean和他們基本的功能.

相關文章
相關標籤/搜索