国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

EJB3.0介紹

2019-11-18 14:44:37
字體:
供稿:網(wǎng)友

在本文中將對新的規(guī)范進行一個概要性的介紹,包括新增的元數(shù)據(jù)支持,EJBQL的修改,實體Bean模型訪問bean上下文的新方法和運行時環(huán)境等等。作者還討論了EJB在未來要作出的調(diào)整以及EJB3.0與其他開發(fā)規(guī)范之間的關(guān)系。

開始

無論如何由于EJB的復(fù)雜性使之在J2EE架構(gòu)中的表現(xiàn)一直不是很好。EJB大概是J2EE架構(gòu)中唯一一個沒有兌現(xiàn)其能夠簡單開發(fā)并提高生產(chǎn)力 的組建。EJB3.0規(guī)范正嘗試在這方面作出努力以減輕其開發(fā)的復(fù)雜性。EJB3.0減輕了開發(fā)人員進行底層開發(fā)的工作量,它取消或最小化了很多(以前這 些是必須實現(xiàn))回調(diào)方法的實現(xiàn),并且降低了實體Bean及O/R映射模型的復(fù)雜性。

在本文中,首先會介紹EJB3.0中幾個主要的改變。它對進一步深入了解EJB3.0是非常重要的。隨后,我會從更高的層面來描述已經(jīng)被提交到EJB3.0規(guī)范中的細節(jié),并一個個的講解新的規(guī)范中的改變:實體Bean,O/R映射模型,實體關(guān)系模型和EJB QL(EJB查詢語言)等等。

背景

EJB3.0中兩個重要的變更分別是:使用了java5中的程序注釋工具和基于Hibernate的O/R映射模型。

Java5中的元數(shù)據(jù)工具

Java5(以前叫J2SE1.5或Tiger) 中加入了一種新的程序注釋工具。通過這個工具你可以自定義注釋標記,通過這些自定義標記來注釋字段、方法、類等等。這些注釋并不會影響程序的語義,但是可 以通過工具(編譯時或運行時)來解釋這些標記并產(chǎn)生附加的內(nèi)容(比如部署描述文件),或者強制某些必須的運行時行為(比如EJB組件的狀態(tài)特性)。注釋的 解析可以通過源文件的解析(比如編譯器或這IDE工具)或者使用Java5中的APIs反射機制。注釋只能被定義在源代碼層。由于所有被提交到EJB3.0草案中的注釋標記都有一個運行時的RetentionPolicy,因此會增加類文件占用的存儲空間,但這卻給容器制造商和工具制造商帶來了方便。

Hibernate

目前Hibernate非常受歡迎,它是開發(fā)源代碼的Java O/R映射框架,目的是把開發(fā)人員從繁瑣的數(shù)據(jù)持久化編程中解脫出來。它也有一個標準的HQL(Hibernate 查詢語言)語言,你可以在新的EJB QL中看到它的影子。Hibernate在處理如數(shù)據(jù)查詢、更新、連接池、事務(wù)處理、實體關(guān)系處理等方面非常簡單。

概覽

在已經(jīng)提交的EJB3.0規(guī)范中主要涉及兩個方面的改變:

1. 一套以注釋為基礎(chǔ)的EJB編程模型,再加上EJB2.1中定義的通過部署描述符和幾個接口定義的應(yīng)用程序行為。

2. 新的實體Bean持久化模型,EJBQL也有許多重要的改變。

還有一些有關(guān)上述的提議,比如:一個新的客戶端編程模型,業(yè)務(wù)接口的使用以及實體Bean的生命周期。請注重EJB2.1編程模型(包括部署描述符和home/remote接口)仍然是有效的。新的簡化模型并沒有完全取代EJB2.1模型。

EJB注釋

EJB規(guī)范組織一個重要的目標是減輕原始代碼的數(shù)量,并且他們?yōu)榇私o出了一個完美而簡介的辦法。在EJB3.0的里,任何類型的企業(yè)級Bean只是一個加了適當注釋的簡單Java對象(POJO)。注釋可以用于定義bean的業(yè)務(wù)接口、O/R映射信息、資源引用信息,效果與在EJB2.1中定義部署描述符和接口是一樣的。在EJB3.0中部署描述符不再是必須的了;home接口也沒有了,你也不必實現(xiàn)業(yè)務(wù)接口(容器可以為你完成這些事情)。

比如,你可以使?Ã@Stateless注釋標記類把Java類聲明為一個無狀態(tài)回話bean。對于有狀態(tài)回話bean來說?¬@Remove注釋可以用來標記一個特定的方法,通過這個注釋來說明在調(diào)用這個方法之后bean的實例將被清除掉。

為了減少描述組件的說明信息,規(guī)范組織還采納了由異常進行配置(configuration-by-exception)的手段,意思是你可以為所有的注釋提供一個明確的缺省值,這樣多數(shù)常規(guī)信息就可以據(jù)此推斷得出。

新的持久化模型

新的實體bean也是一個加了注釋的簡單Java對象(POJO)。一旦它被EntityManager訪問它就成為了一個持久化對象,并且成 為了持久化上下文(context)的一部分。一個持久化上下文與一個事務(wù)上下文是松耦合的;嚴格的講,它隱含的與一個事務(wù)會話共存。

實體關(guān)系也是通過注釋來定義的,O/R映射也是,并提供幾種不同的數(shù)據(jù)庫規(guī)范操作,在EJB2.1中這些要通過開發(fā)人員自己的設(shè)計模式或者其它技術(shù)來完成的(比如,自增長主鍵策略)。

深入研究

現(xiàn)在是時候具體了解EJB3.0草案了。讓我們開始探討所有EJB中四種企業(yè)級bean,并看看他們在新的規(guī)范中是什么樣子。

無狀態(tài)回話bean

在EJB3.0規(guī)范中,寫一個無狀態(tài)回話bean(SLSB)只需要一個簡單的Java文件并在類層加?Ï@Stateless注釋就可以了。這個bean可以擴展javax.ejb.sessionBean接口,但這些不是必須的。

一個SLSB不再需要home接口,沒有哪類EJB再需要它了。Bean類可以實現(xiàn)業(yè)務(wù)接口也可以不實現(xiàn)它。假如沒有實現(xiàn)任何業(yè)務(wù)接口,業(yè)務(wù)接 口會由任意public的方法產(chǎn)生。假如只有幾個業(yè)務(wù)方法會被暴露在業(yè)務(wù)接口中,這些方法可以使?Ã@BusinessMethod注釋。缺省情況下所有產(chǎn) 生的接口都是local(本地)接口,你也可以使?Ã@Remote注釋來聲明這個接口為remote(遠程)接口。



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 泽普县| 邯郸市| 婺源县| 山西省| 开平市| 巨鹿县| 洪江市| 荣昌县| 台前县| 宜城市| 平乐县| 洞口县| 韶山市| 改则县| 亚东县| 葵青区| 惠东县| 启东市| 沈阳市| 河津市| 奉节县| 牙克石市| 屏东县| 东阿县| 济源市| 澎湖县| 怀安县| 双桥区| 阿克| 广昌县| 鲁甸县| 汤原县| 南乐县| 安达市| 新巴尔虎右旗| 瑞丽市| 民勤县| 岳普湖县| 双流县| 普宁市| 辽阳县|