Java EE 6企業(yè)級應(yīng)用開發(fā)教程:第7章 EJB概述_第1頁
Java EE 6企業(yè)級應(yīng)用開發(fā)教程:第7章 EJB概述_第2頁
Java EE 6企業(yè)級應(yīng)用開發(fā)教程:第7章 EJB概述_第3頁
Java EE 6企業(yè)級應(yīng)用開發(fā)教程:第7章 EJB概述_第4頁
Java EE 6企業(yè)級應(yīng)用開發(fā)教程:第7章 EJB概述_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第7 7章EJBEJB概述吉林大學(xué)軟件學(xué)院本章內(nèi)容安排: EJB EJB概述概述 EJB 3.1 EJB 3.1組件類型及組成組件類型及組成 EJB EJB運(yùn)行原理運(yùn)行原理 EJB 3.1 EJB 3.1新特性新特性7.1 EJB7.1 EJB概述EJB 是Enterprise JavaBean的縮寫,又稱為企業(yè)Bean,是Sun公司提出的服務(wù)器端組件規(guī)范,它描述了在構(gòu)建組件的時(shí)候所需要解決的一系列問題,如可擴(kuò)展(Scalable)、分布式(distributed)、事務(wù)處理(Transcational)、數(shù)據(jù)存儲(Persistent)、安全性(security)等。EJB 1.0EJB 1

2、.01998年3月發(fā)布。定義了EJB和EJB容器的作用提供了最早的開發(fā)者與用戶視圖。EJB 1.1EJB 1.11999年12月發(fā)布。開始采用XML部署描述符,默認(rèn)的JNDI上下文以及可支持IIOP的RMI。安全機(jī)制由角色(Role)驅(qū)動(dòng),而非方法。支持實(shí)體類,且必須在應(yīng)用中實(shí)現(xiàn)。EJB 2.0EJB 2.02001年8月22日發(fā)布,JSR 19 定義。制定了構(gòu)建面向?qū)ο笊虅?wù)應(yīng)用的標(biāo)準(zhǔn)組建結(jié)構(gòu)。支持構(gòu)筑使用不同開發(fā)工具所開發(fā)之組件的聯(lián)合應(yīng)用部署。在多線程,連接池,事務(wù)管理等方面對用戶透明化。符合“一次寫成,多次運(yùn)行”的Java思想。關(guān)注企業(yè)級應(yīng)用生命期間的開發(fā),部署,運(yùn)行等動(dòng)作。定義了不同開發(fā)

3、工具所需遵守的契約,以便其產(chǎn)品能夠在運(yùn)行期交互支持與現(xiàn)行系統(tǒng)兼容,開發(fā)者可以擴(kuò)展現(xiàn)有產(chǎn)品以使之支持EJB。與其他Java API兼容。支持EJB與Java2平臺企業(yè)版或者其他非Java應(yīng)用程序之間的互操作性支持與CORBA兼容的RMI-IIOP。EJB 2.1EJB 2.12003年11發(fā)布,JSR 153定義。Web服務(wù):可將無狀態(tài)會話bean暴露為Web服務(wù);EJB可通過引用訪問Web服務(wù)。EJB定時(shí)器服務(wù):提供一種新的基于定時(shí)器的事件驅(qū)動(dòng)方式??晒┫Ⅱ?qū)動(dòng)bean作為消息源使用。增加了消息目的地。進(jìn)一步豐富了EJB查詢語言,支持ORDER BY, AVG, MIN, MAX, SUM,

4、COUNT和MOD。使用XML schema代替DTD以定義部署描述符。EJB 3.0EJB 3.02006年5月發(fā)布,JSR 220定義。全面采用Java標(biāo)注代替部署描述符。(后者仍可使用,并且具有更高優(yōu)先級)把2.X版的EntityBean改為由JPA支持。EJB 3.1EJB 3.12009年隨Java EE 6發(fā)布7.2 EJB 3.17.2 EJB 3.1組件類型及組成7.2.17.2.1類型類型1、會話Bean 會話Bean主要是對業(yè)務(wù)邏輯的封裝。EJB 3.1中將會話Bean分成有狀態(tài)會話Bean、無狀態(tài)會話Bean、單例會話Bean。2、消息驅(qū)動(dòng)Bean消息驅(qū)動(dòng)Bean(MDB

5、)是設(shè)計(jì)用來專門處理基于消息請求的組件。一個(gè)MDB類必須實(shí)現(xiàn)MessageListener接口。當(dāng)容器檢測到bean守候的隊(duì)列中存在一條消息時(shí),就調(diào)用onMessage()方法,將消息作為參數(shù)傳入。7.2 EJB 3.17.2 EJB 3.1組件類型及組成7.2.2 7.2.2 組成組成1. 接口文件:是EJB組件模型的一部分,包含了EJB提供的對外服務(wù)接口,里面提供的方法一般和需要被遠(yuǎn)程調(diào)用的方法一致,一般情況下,要求類文件必須和接口中的定義保持一致性。2. 類文件:實(shí)現(xiàn)基本方法的類,封裝了需要實(shí)現(xiàn)的業(yè)務(wù)邏輯,數(shù)據(jù)邏輯或消息處理邏輯,具有一定的編程規(guī)范,代碼不需要被客戶端得知。3. 必要的情

6、況下,編寫一些配置文件,用于描述EJB部署過程中的一些信息。7.3 EJB7.3 EJB運(yùn)行原理利用EJB編程,通常包含以下幾個(gè)步驟:1. 編寫接口。2. 編寫實(shí)現(xiàn)接口的EJB實(shí)現(xiàn)類。3. 部署到服務(wù)器中,將JNDI名稱發(fā)布。4. 編寫客戶端程序,并將接口拷貝給客戶端,通過JNDI查找獲得EJB,調(diào)用EJB的方法。客戶端程序接口服務(wù)器EJB實(shí)現(xiàn)類JNDI名稱接口JNDI名稱接口對象圖7-1 EJB組件之間的關(guān)系7.4 EJB 3.17.4 EJB 3.1新特性無接口的會話bean單例會話Bean簡化的EJB打包機(jī)制異步會話BeanEJB Lite統(tǒng)一的全局JNDI命名7.4 EJB 3.17.

7、4 EJB 3.1新特性無接口的會話bean單例會話Bean簡化的EJB打包機(jī)制異步會話BeanEJB Lite統(tǒng)一的全局JNDI命名EJB3.0要求bean至少實(shí)現(xiàn)一個(gè)接口,而EJB3.1的bean可以不需要接口StatelessPublic class StockQuoteBeanPublic double getStockPrice(Stringsymbol) . 無接口的會話bean 7.4 EJB 3.17.4 EJB 3.1新特性無接口的會話bean單例會話Bean簡化的EJB打包機(jī)制異步會話BeanEJB Lite統(tǒng)一的全局JNDI命名EJB3.1引入單例會話Bean概念主要是為

8、了共享應(yīng)用數(shù)據(jù)和支持一致性訪問,當(dāng)一個(gè)Bean被標(biāo)記為Singleton時(shí),在整個(gè)應(yīng)用層容器可以保證每個(gè)客戶端共享一個(gè)實(shí)例。Singleton/單例會話beanpublicclassCounterBean privateintcount; PostConstruct/實(shí)例化之后運(yùn)行的內(nèi)容publicvoidinitialize() count=5; 7.4 EJB 3.17.4 EJB 3.1新特性無接口的會話bean單例會話Bean簡化的EJB打包機(jī)制異步會話BeanEJB Lite統(tǒng)一的全局JNDI命名EJB 3.1中一個(gè)重要的改進(jìn)是可以直接將EJB組件打包到WAR文件中,不用再獨(dú)立創(chuàng)建j

9、ar文件了EJB3.1以前規(guī)范始終要求企業(yè)Bean打包到一個(gè)叫做ejb-jar的文件模塊中,應(yīng)用程序被強(qiáng)制性要求使用一個(gè)Web應(yīng)用程序使用的歸檔文件(.war),一個(gè)企業(yè)Bean使用的ejb-jar文件,還有一個(gè)包含其它包的企業(yè)歸檔文件(.ear),圖7-2 EJB 3.0打包方式圖7-3 EJB 3.1打包方式EJB 3.1中一個(gè)重要的改進(jìn)是可以直接將EJB組件打包到WAR文件中,不用再獨(dú)立創(chuàng)建jar文件了。7.4 EJB 3.17.4 EJB 3.1新特性無接口的會話bean單例會話Bean簡化的EJB打包機(jī)制異步會話BeanEJB Lite統(tǒng)一的全局JNDI命名異步調(diào)用可以應(yīng)用于所有類型

10、的會話bean。在EJB 3.1之前,在會話Bean上的任何函數(shù)調(diào)用都是同步的。EJB 3.1規(guī)范規(guī)定:在容器開始執(zhí)行某個(gè)bean實(shí)例的調(diào)用之前,異步調(diào)用的控制權(quán)一定要返回給客戶端,因此允許客戶端觸發(fā)并行處理的流程。7.4 EJB 3.17.4 EJB 3.1新特性無接口的會話bean單例會話Bean簡化的EJB打包機(jī)制異步會話BeanEJB Lite統(tǒng)一的全局JNDI命名 會話Bean組件 只支持同步調(diào)用 容器管理和Bean管理事務(wù) 聲明和編程安全 攔截器 支持部署描述信息(ejb-jar.xml)7.4 EJB 3.17.4 EJB 3.1新特性無接口的會話bean單例會話Bean簡化的E

11、JB打包機(jī)制異步會話BeanEJB Lite統(tǒng)一的全局JNDI命名EJB 3.1規(guī)范定義了全局JNDI命名方式,采用統(tǒng)一的方式來獲取注冊的session beans,因此用戶可以使用兼容性的JNDI命名了。在JBoss 7中,對于無狀態(tài)會話對于無狀態(tài)會話Bean命名規(guī)則如下:命名規(guī)則如下:ejb:/!對于有狀態(tài)會話對于有狀態(tài)會話Bean命名規(guī)則如下:命名規(guī)則如下:ejb:/!?stateful名稱名稱描述描述必選必選app-nameapp-name應(yīng)用程序的名稱。如果沒有在application.xml中指定,則默認(rèn)的名稱就是EAR的打包名稱。否module-namemodule-name模塊的名稱。如果沒有在ejb-jar.xml中指定,則默認(rèn)的名稱就是bundle文件名是distinct-namedistinct-nameEJB名字,默認(rèn)就是EJB實(shí)現(xiàn)類的名字否bean-namebean-nameBean的名稱。如果沒有使用標(biāo)注Stateless,Stateful,Singleton或其它布署描述符,則默認(rèn)的名稱就是該session bean的類的完全限定名稱。是Fully-qualified-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論