日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

EJB的相关知识

發布時間:2024/7/5 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EJB的相关知识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、EJB發展歷史

IBM、SUN公司力推EJB前景,大公司開始采用EJB部署系統。主要價值:對分布式應用進行事務管理

出現問題:

①EJB的API難度大

②規范要求必須拋出特定異常的接口并將Bean類作為抽象類實現(不正常不直觀)

③對象關系映射和食物管理有天然復雜性

④用EJB封裝業務邏輯會帶來性能下降

【早期EJB規范至允許客戶端通過特定協議例如CORBA進行遠程方法調用來調用,直到EJB2.0引入本地接口?!?/p>

輕量級技術代替EJB:Hibermate【數據持久化和對象關系映射】、Spring框架【封裝業務邏輯】

改變: EJB3.0出現

1. EJB 1.0

EJB1.0發布于1998年3月24日,規范中包含有狀態的的服務器對象、無狀態的服務器對象和可選的持久化領域對象?。

EJB1.0提供了良好的分布式支持功能,允許通過遠程接口來遠程調用EJB中的業務方法。

EJB1.0強制客戶機組件以遠程訪問的方式調用EJB方法。

2. EJB 1.1

EJB1.1發布于1999年12月17日。

EJB1.1開始支持實體Bean,必須在應用中實現。實體Bean是可以存儲在持久存儲介質上的持久對象,用來表示永久性數據并提供操作這些數據的方法。一般情況下一個實體Bean對應數據庫中的一張表,而一個實體類的實例對應著這張表的一個記錄。

EJB1.1引入了XML格式的部署描述文件,用來以聲明的方式管理EJB的部署信息。

EJB1.1的安全機制由角色驅動,而非方法。

3. EJB 2.0

EJB2.0發布于2001年8月22日。

EJB2.0取消了強制客戶機組件以遠程訪問的方式調用EJB方法。【減少不必要的系統開銷 避免性能下降】

EJB2.0引入本地接口,允許開發者選擇是否讓EJB組件支持遠程訪問。

EJB2.0增強了實體Bean功能,為容器管理持久化的EJB提供容器管理關系的支持,開發者可以通過配置文件來管理EJB之間的關系

EJB2.0引入了EJB-QL作為查詢語言,為實體Bean提供查詢支持。

EJB2.0引入了消息驅動Bean,消息驅動Bean是用來專門處理消息請求的組件,屬于無狀態的會話Bean,異步處理用戶請求。消息驅動Bean沒有遠程接口,不能被客戶機調用??梢酝ㄟ^向消息目的地發消息觸發消息驅動Bean的onMessage方法。

4. EJB 2.1

EJB2.1發布于2003年11月24日。

EJB2.1可以提供Web Service支持,利于異構系統的整合??蓪o狀態會話bean暴露為Web服務;EJB可通過引用訪問Web服務。

EJB2.1增加定時器服務,提供一種新的基于定時器的事件驅動方式??晒┫Ⅱ寗觔ean作為消息源使用。

EJB2.1增加了EJB-QL的功能,改進EJB-QL的查詢功能。支持ORDER BY, AVG, MIN, MAX, SUM, COUNT和MOD。

EJB2.1使用XML schema代替DTD以定義部署描述符。

5. EJB 3.0

EJB3.0發布于2006年5月2日。

EJB3.0拋棄了EJB2實體的設計,僅保留了會話Bean和消息驅動Bean。

EJB3.0引入了全新的JPA規范作為持久化解決方案。JPA是一種Java應用程序接口規范,描述Java應用中關系數據的管理,充當面向對象領域模型和關系數據庫系統的橋梁。

EJB3.0簡化了EJB2中會話Bean的開發,不再需要Home接口。

EJB3.0只要求提供遠程或本地的業務接口即可。

EJB3.0不推薦實用XML文件作為部署描述文件,改為使用Annotation設置部署描述信息。

EJB3.0使用傳統簡單Java對象(POJO),實際是普通JavaBeans,有一些屬性及屬性的getter、setter方法,沒有業務邏輯,有時可以作為值對象和數據傳輸對象使用。可以有簡單的運算屬性,不允許有業務方法,不能帶有connection之類的方法。主要用協助業務邏輯。

EJB3.0支持依賴注入來簡化全異系統的集成與配置。

EJB3.0規范大幅采用Java注釋來代替部署描述符對代碼進行元數據修飾,從而消減此前EJB編程的冗雜性。

EJB3.0把2.X版的實體Bean改為由JPA支持?!綣PA是Java持久層接口,是JDK5.0注釋和XML描述對象關系表的映射關系,運行期的實體對象持久化到數據庫中?!?/p>

6. EJB 3.1

EJB3.1允許企業Bean只提供一個Bean類,無須提供業務接口。

EJB3.1允許通過異步的方式調用會話Bean的業務方法。

EJB3.1取消了類文件必須打包到JAR文件的限制,允許直接將EJB類放到WAR文件中。

?

二、EJB核心模型

EJB定義了三種企業Bean,分別是會話Bean、實體Bean和消息驅動Bean。

會話Bean描述了與客戶端的一個短暫的會話。當客戶端的執行完成后,會話Bean和它的數據都將消失;

實體Bean描述了存儲在數據庫表中的一行持久穩固的數據,如果客戶端終止或者服務結束,底層的服務會負責實體Bean 數據的存儲。

數據驅動Bean結合了會話Bean 和 Java信息服務(JMS)信息監聽者的功能,它允許一個商業組件異步地接受 JMS消息。

1. 會話Bean

會話Bean用于實現業務邏輯,分為有狀態的會話Bean和無狀態的會話Bean。

每當客戶端發出EJB調用請求時,容器就會選擇一個會話Bean為客戶端服務。

會話Bean可以直接訪問數據庫,更多時候由實體Bean實現數據訪問。

2. 實體Bean

實體Bean代表真實物體的數據。

EJB3.0中實體Bean僅作為普通Java對象使用。

實體Bean負責與數據庫表進行對象關系映射。

3. 消息驅動Bean

消息驅動Bean用來專門處理基于消息請求的組件。

消息驅動Bean可以收發異步JMS消息,能夠與其他EJB交互。

【JMS是Java消息服務應用程序接口 支持兩個程序之間或分布式系統中發送消息,進行異步通信】

適用于一個業務執行時間很長,執行結果無須實時向用戶反饋的場合。

三、開發支撐

1. EJB容器

EJB需要運行在EJB容器,EJB容器截取客戶和組建之間的通信,并根據配置信息添加基礎設施代碼,EJB容器用于提供EJB組件的開發、部署和運行環境。

目前支持EJB3.0的應用服務器有JBoss(4.2.X以上版本)、Classfish、WebLogic(10以上版本)、Sun Application Server(9.0以上版本)、Oracle Application Server(10g以上版本)和Apusic應用服務器?!綣Boss是使用者最多的開源應用服務器,WebLogic是時長占有率最高的商業應用服務器】

2. JNDI

JNDI為各種現有的命名和目錄服務提供通用接口:DNS、LDAP、活動目錄、RMI注冊器、COS注冊器、NIS及文件系統。

JNDI有客戶API和服務提供商接口SPI組成,應用程序通過客戶API訪問命名和目錄服務。服務提供商接口用于供廠商創建命名和目錄服務的JNDI實現。

EJB開發者只需要知道客戶API如何訪問命名和目錄服務,不需要知道JNDI SPI的使用。

命名服務用于將名稱和對象聯系起來,從而可以用名稱訪問對象。【例如:輸入URL ------DNS-------》IP地址】

目錄服務是命名服務的擴展,目錄服務的對象不僅有名稱,還有屬性。目錄服務中對象可以有屬性,命名服務中對象沒有屬性。

四、開發平臺

可以在Eclipse上完成基于EJB的二次開發。

五、二次開發基本步驟

1. 開發環境配置

①配置JDK和JBoss環境,在Eclipse里新建EJB項目

②打包JAR文件到JBoss安裝目錄是server/default/deploy/目錄下,JBoss會對JAR文件進行熱部署。打包WAR文件到JBoss安裝目錄是server/default/deploy/目錄下。瀏覽器訪問應用程序。

?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的EJB的相关知识的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。