斷點

          每天進步一點點!
          posts - 174, comments - 56, trackbacks - 0, articles - 21

          EJB3.0 基礎

          Posted on 2010-01-13 22:36 斷點 閱讀(261) 評論(0)  編輯  收藏 所屬分類: EJB3.0

          EJB(Enterprise JavaBeans)在JavaEE體系中,通常用來完成商務邏輯層的功能,EJB是一種組件結構。EJB組件要按照EJB規范編寫,然后部署到應用服務器上,具體講是運行在J2EE應用服務器的EJB容器中,該部分軟件不單為EJB提供運行時的環境,更重要的是提供事務、會話管理、持久性、安全等服務。EJB容器通過查看EJB描述符(配置文件)確定EJB需要那些服務。客戶機要訪問EJB組件需要通過JNDI和RMI定位EJB的對外接口。

          采用EJB開發基于MVC(包含顯示層、控制層和業務層)結構的應用,那么EJB就是用于開發應用的業務層。

          開發EJB遵循如下步驟進行:
          1.開發構成EJB組件的Java源文件,比如:組件接口、Home接口、企業Bean類、所需的輔助類等。
          2.手工完成部署描述符,或者借助與IDE。
          3.編譯步驟1開發的java源文件.
          4.借助于JDK自帶的jar使用工具,來創建含有部署描述符和.class文件的EJB-jar文件。
          5.通過具體EJb容器提供的部署建議,來完成Ejb-jar文件的部署。
          6.配置EJB服務器,使得Ejb-jar含有的Ejb組件能夠正常運作。
          7.啟動EJB服務器。此時,開發者可以驗證EJB組件是否部署成功,并運行。
              
          EJB3.0規范定義了如下3種EJB組件類型:
          1、會話Bean(SessionBean):無狀態會話Bean(Stateless SessionBean)、有狀態會話Bean(Stateful SessionBean)。
          會話Bean通常有以下屬性:
          (1)代表單個客戶機執行。
          (2)可以是事務的。
          (3)可以更新共享數據庫中的數據。
          (4)生存期相對較短。
          (5)其生存期通常就是客戶機的生存期。
          (6)任何持久性數據都有Bean管理。
          (7)可以依容器的判斷予以刪除。
          (8)會在EJB服務器失敗時被刪除。
                EJB容器管理無狀態會話Bean的生存周期,其方式是通過創建足夠多數量的此種Bean適應客戶機工作負荷,并在不需要它們的時候將其刪除或者將閑置的Bean寫到磁盤上。
                如果會話Bean在方法調用之前需要保留狀態信息,則必須使用有狀態的會話Bean(Stateful SessionBean)。
               會話Bean在J2EE應用程序中被用來完成一些服務器端的業務操作,例如訪問數據庫、調用其他EJB組件。
               總之,會話Bean代表一種操作:它檢索或者存儲數據以滿足用戶的請求。

          2、實體Bean(EntityBean),通常有以下屬性:
          (1)代表數據庫的數據。
          (2)是事務性的。
          (3)允許多個用戶共同訪問。
          (4)可以長期存在。
          (5)持久性數據可以由容器管理。
          (6)在EJB服務器失敗后能繼續生存。
                實體Bean被用來代表應用數據庫中用到的數據。例如在一個電子商務系統中,實體Bean可以被用來代表產品、雇員、信用卡、訂單數據等數據對象。
                持久性是實體Bean的一個基本屬性。EJB規范允許兩種形式的實體持久性:Bean管理的持久性(BMP)和容器管理的持久性(CMP)。
                實體Bean支持多個用戶并發的訪問數據。EJB規范說明,維護數據的完整性是容器的責任。容器完成這個任務通常的做法是,鎖定數據庫中的數據,并使訪問串行化,或者通過創建多個實體Bean的實例,并允許在基礎數據存儲中使用并發控制,來管理訪問。
               總之,實體Bean代表一種數據集:可以訪問這些數據集以滿足用戶的請求。

          3、消息驅動bean(Message DrivenBean)
               消息驅動Bean要與JMS結合使用,以提供消息驅動的異步處理功能。例如電子商務系統的交易確認就可以用消息驅動Bean來實現。
               消息驅動Bean作為JMS隊列和主題的監聽器部署,當有JMS消息到達,系統就會調用消息驅動Bean去完成業務邏輯方法。
               總之,客戶機不能直接調用消息驅動Bean,客戶通過發送JMS消息調用消息驅動Bean。


          posted @ 2009-03-13 15:11 斷點 閱讀(122) | 評論 (0)
          主站蜘蛛池模板: 卓资县| 潮安县| 额尔古纳市| 涪陵区| 隆回县| 明光市| 莎车县| 石棉县| 临城县| 林州市| 西贡区| 苍山县| 东乡族自治县| 洪江市| 麦盖提县| 凉城县| 宁都县| 建宁县| 邻水| 林周县| 布拖县| 云阳县| 汉川市| 湖北省| 林甸县| 内丘县| 建水县| 封丘县| 巴林左旗| 和静县| 丹凤县| 增城市| 依兰县| 龙井市| 日土县| 阳高县| 宁乡县| 大荔县| 循化| 广宁县| 皮山县|