Posted on 2010-01-13 22:36
斷點 閱讀(260)
評論(0) 編輯 收藏 所屬分類:
EJB3.0
EJB(Enterprise JavaBeans)在JavaEE體系中,通常用來完成商務邏輯層的功能,EJB是一種組件結構。EJB組件要按照EJB規(guī)范編寫,然后部署到應用服務器上,具體講是運行在J2EE應用服務器的EJB容器中,該部分軟件不單為EJB提供運行時的環(huán)境,更重要的是提供事務、會話管理、持久性、安全等服務。EJB容器通過查看EJB描述符(配置文件)確定EJB需要那些服務??蛻魴C要訪問EJB組件需要通過JNDI和RMI定位EJB的對外接口。
采用EJB開發(fā)基于MVC(包含顯示層、控制層和業(yè)務層)結構的應用,那么EJB就是用于開發(fā)應用的業(yè)務層。
開發(fā)EJB遵循如下步驟進行:
1.開發(fā)構成EJB組件的Java源文件,比如:組件接口、Home接口、企業(yè)Bean類、所需的輔助類等。
2.手工完成部署描述符,或者借助與IDE。
3.編譯步驟1開發(fā)的java源文件.
4.借助于JDK自帶的jar使用工具,來創(chuàng)建含有部署描述符和.class文件的EJB-jar文件。
5.通過具體EJb容器提供的部署建議,來完成Ejb-jar文件的部署。
6.配置EJB服務器,使得Ejb-jar含有的Ejb組件能夠正常運作。
7.啟動EJB服務器。此時,開發(fā)者可以驗證EJB組件是否部署成功,并運行。
EJB3.0規(guī)范定義了如下3種EJB組件類型:
1、會話Bean(SessionBean):無狀態(tài)會話Bean(Stateless SessionBean)、有狀態(tài)會話Bean(Stateful SessionBean)。
會話Bean通常有以下屬性:
(1)代表單個客戶機執(zhí)行。
(2)可以是事務的。
(3)可以更新共享數(shù)據(jù)庫中的數(shù)據(jù)。
(4)生存期相對較短。
(5)其生存期通常就是客戶機的生存期。
(6)任何持久性數(shù)據(jù)都有Bean管理。
(7)可以依容器的判斷予以刪除。
(8)會在EJB服務器失敗時被刪除。
EJB容器管理無狀態(tài)會話Bean的生存周期,其方式是通過創(chuàng)建足夠多數(shù)量的此種Bean適應客戶機工作負荷,并在不需要它們的時候將其刪除或者將閑置的Bean寫到磁盤上。
如果會話Bean在方法調(diào)用之前需要保留狀態(tài)信息,則必須使用有狀態(tài)的會話Bean(Stateful SessionBean)。
會話Bean在J2EE應用程序中被用來完成一些服務器端的業(yè)務操作,例如訪問數(shù)據(jù)庫、調(diào)用其他EJB組件。
總之,會話Bean代表一種操作:它檢索或者存儲數(shù)據(jù)以滿足用戶的請求。
2、實體Bean(EntityBean),通常有以下屬性:
(1)代表數(shù)據(jù)庫的數(shù)據(jù)。
(2)是事務性的。
(3)允許多個用戶共同訪問。
(4)可以長期存在。
(5)持久性數(shù)據(jù)可以由容器管理。
(6)在EJB服務器失敗后能繼續(xù)生存。
實體Bean被用來代表應用數(shù)據(jù)庫中用到的數(shù)據(jù)。例如在一個電子商務系統(tǒng)中,實體Bean可以被用來代表產(chǎn)品、雇員、信用卡、訂單數(shù)據(jù)等數(shù)據(jù)對象。
持久性是實體Bean的一個基本屬性。EJB規(guī)范允許兩種形式的實體持久性:Bean管理的持久性(BMP)和容器管理的持久性(CMP)。
實體Bean支持多個用戶并發(fā)的訪問數(shù)據(jù)。EJB規(guī)范說明,維護數(shù)據(jù)的完整性是容器的責任。容器完成這個任務通常的做法是,鎖定數(shù)據(jù)庫中的數(shù)據(jù),并使訪問串行化,或者通過創(chuàng)建多個實體Bean的實例,并允許在基礎數(shù)據(jù)存儲中使用并發(fā)控制,來管理訪問。
總之,實體Bean代表一種數(shù)據(jù)集:可以訪問這些數(shù)據(jù)集以滿足用戶的請求。
3、消息驅動bean(Message DrivenBean)
消息驅動Bean要與JMS結合使用,以提供消息驅動的異步處理功能。例如電子商務系統(tǒng)的交易確認就可以用消息驅動Bean來實現(xiàn)。
消息驅動Bean作為JMS隊列和主題的監(jiān)聽器部署,當有JMS消息到達,系統(tǒng)就會調(diào)用消息驅動Bean去完成業(yè)務邏輯方法。
總之,客戶機不能直接調(diào)用消息驅動Bean,客戶通過發(fā)送JMS消息調(diào)用消息驅動Bean。
posted @ 2009-03-13 15:11 斷點 閱讀(122) | 評論 (0)