麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

關(guān)于EJB的持久化對象技術(shù)分析(1)

2019-11-18 13:52:21
字體:
供稿:網(wǎng)友

表格型的關(guān)系型數(shù)據(jù)庫與樹型java對象之間的映射問題是一個至今爭論不休的問題,好在現(xiàn)在已經(jīng)有了一些好的解決方案。在本文中,我們將介紹EJB技術(shù)是怎樣用自已特定的方式來解決這個問題的。

只要是涉及到保存及查詢信息 ,那絕大多數(shù)應(yīng)用程序都需要與關(guān)系數(shù)據(jù)庫打交道。但由于關(guān)系數(shù)據(jù)庫與Java對象在結(jié)構(gòu)上有著本質(zhì)的區(qū)別,關(guān)于它們之間的映射關(guān)系對于那些Java開發(fā)者們來說,是一個很令人頭痛的問題。關(guān)系型數(shù)據(jù)庫是以表格方式存儲數(shù)據(jù)的,而Java對象是以樹型方式表現(xiàn)的。這種類型上的不匹配引發(fā)了各種各樣的對象持久化解決方案,用來縮小關(guān)系世界與對象世界之間的鴻溝。EJB框架正是這種解決方案之一。

對象的持久性



目前有很多不同的工具出現(xiàn),使得開發(fā)人員可以將JAVA對象轉(zhuǎn)化為數(shù)據(jù)庫中的字段或記錄,或者將數(shù)據(jù)庫中的字段或記錄還原為JAVA對象。這些處理涉及到要將樹型的JAVA對象序列化到數(shù)據(jù)庫中,反之亦然。此工作的核心是怎樣在保證最小性能損失的前提下,來完成這項(xiàng)工作。

EJB框架提供了這樣一個對象持久化機(jī)制。我們將在本文中討論這種機(jī)制,但首先我們還是對EJB構(gòu)架作一個全面的熟悉。

企業(yè)級JavaBeans(EJB)

EJB技術(shù)可以這樣定義:它是一個基于JAVA服務(wù)端的,為分布式應(yīng)用提供的一個可復(fù)用的組件框架。所有的商業(yè)邏輯、部署定義、對象持久性都由這個框架統(tǒng)一治理,EJB框架的一些特色如下:

· EJB是一種運(yùn)行在服務(wù)端環(huán)境下的JAVA對象。

· EJB能分布在不同的機(jī)器上進(jìn)行遠(yuǎn)程訪問,但對客戶端來而言,調(diào)用EJB與調(diào)用本地JavaBean一樣方便。

· EJB容器對EJB進(jìn)行統(tǒng)一治理。

盡管企業(yè)級JavaBean的名字與普通JavaBean在命名上有些相像,但它們在設(shè)計(jì)上有著本質(zhì)上的區(qū)別。為了能讓你更清楚地熟悉到這點(diǎn),我們最好先了解一下EJB的基本概念、幾種EJB組件模式和其配置環(huán)境。

EJB的運(yùn)行環(huán)境

從本質(zhì)上來說,EJB只是實(shí)現(xiàn)了特定接口的普通JAVA對象,但這個對象必須運(yùn)行在一個特定的環(huán)境:EJB容器中。假如脫離了EJB容器,EJB是無法運(yùn)行的。EJB與EJB容器之間的關(guān)系有時候被稱為"反向調(diào)用"――或者叫"好萊塢原理"(別聯(lián)系我,到時候我會給你打電話的)。

EJB容器是一種用來治理EJB的運(yùn)行時環(huán)境。它容納并治理不同類型的EJB,這與JAVA servlet容器治理servlet有些類似。EJB容器負(fù)責(zé)初始化EJB,并給其提供系統(tǒng)級的服務(wù)。

當(dāng)客戶端程序要調(diào)用某一個EJB時并不直接與EJB打交道,客戶端與EJB被容器隔離起來。

EJB容器提供的服務(wù)



當(dāng)開發(fā)者創(chuàng)建一系列的類與接口,用來組成一個EJB時,容器會為他們提供如下的系統(tǒng)級服務(wù):

· 事務(wù)處理

· 安全治理

· EJB的持久化治理

· EJB的遠(yuǎn)程訪問

· EJB的生命周期治理

· 數(shù)據(jù)庫連接池

· EJB的實(shí)例池治理

由于EJB容器負(fù)責(zé)為EJB提供這種底層服務(wù),使得一個EJB開發(fā)者只需關(guān)注具體應(yīng)用的商業(yè)邏輯,從而減少了很多不必要的麻煩。

EJB的類型

EJB規(guī)范定義了以下三種不同類型的EJB類型:

· 消息驅(qū)動EJB(MDB)

· 會話EJB

· 實(shí)體EJB

當(dāng)客戶端與會話EJB或?qū)嶓wEJB交互時,它們的通信方式是同步通信。而消息驅(qū)動EJB(MDB)則只與JMS進(jìn)行交互,它相當(dāng)于JMS中的一個發(fā)布/訂閱主題。

消息驅(qū)動EJB

消息驅(qū)動EJB工作在異步通信模式下。一個消息驅(qū)動EJB充當(dāng)一個消息偵聽者的角色,它偵服從JMS的發(fā)布/訂閱主題中傳來的消息。

EJB容器治理著消息驅(qū)動EJB的生命周期,然而與會話EJB和實(shí)體EJB不同之處在于客戶端并不能直接調(diào)用它的方法。消息驅(qū)動EJB是通過一個名為onMessage的回調(diào)函數(shù)來接收客戶端的消息的。

會話EJB

會話EJB的特點(diǎn)是不能同時被多個客戶端共享。當(dāng)客戶端調(diào)用會話EJB的方法時,先經(jīng)過EJB容器處理,然后再由容器對會話EJB進(jìn)行調(diào)用。會話EJB處理開發(fā)者編寫商業(yè)邏輯,容器再將處理結(jié)果返回給客戶端。會話EJB不能在多個會話中持久保存。它分為兩種類型:有狀態(tài)的會話EJB和無狀態(tài)的會話EJB。

有狀態(tài)的會話EJB

當(dāng)一個客戶端與某一個有狀態(tài)的會話EJB開啟一個會話時,這個EJB為客戶端維護(hù)了一個會話狀態(tài)。這暗示著客戶端向此EJB發(fā)出不同的調(diào)用請求之間保證EJB的成員變量值不會丟失。

一旦客戶端結(jié)束與有狀態(tài)的會話EJB的交互后,EJB容器會自動銷毀它。于是整個會話結(jié)束,并且此有狀態(tài)的會話EJB所保存的狀態(tài)數(shù)據(jù)會全部丟失。

無狀態(tài)會話EJB

無狀態(tài)會話EJB并不為客戶端保存任何狀態(tài)數(shù)據(jù)。你可以這樣認(rèn)為:客戶端每次對無狀態(tài)會話EJB的調(diào)用都會產(chǎn)生一個新的EJB實(shí)例,因此所有的狀態(tài)信息都不會保存。 同樣,EJB容器也不會持久化任何無狀態(tài)會話EJB,因此開發(fā)者必須意識到客戶端與無狀態(tài)會話EJB之間進(jìn)行交互時,所有的狀態(tài)數(shù)據(jù)都是臨時的。無狀態(tài)會話EJB的這種特性使得容器可以重復(fù)地使用它的實(shí)例,因此無狀態(tài)會話EJB能得到比有狀態(tài)會話EJB更好的性能。

實(shí)體EJB

實(shí)體EJB表達(dá)的的是一種持久存儲的商業(yè)邏輯,通常存儲于關(guān)系型數(shù)據(jù)庫中。實(shí)體EJB與關(guān)系型數(shù)據(jù)庫有如下的相似之處:

· 實(shí)體EJB是持久的――它可以在應(yīng)用程序的生命周期之外存在,甚至可以在EJB容器的生命周期以外存在。

· 實(shí)體EJB答應(yīng)共享訪問――多個客戶端可以共享同一個實(shí)體EJB,而容器負(fù)責(zé)治理它們之間的同步。

· 實(shí)體EJB有主鍵――主鍵用來確定實(shí)體EJB的一個唯一實(shí)例,利用它可以找到一個特定的持久化實(shí)體。

· 實(shí)體EJB有事務(wù)的概念――由于客戶端能并發(fā)訪問并修改它的數(shù)據(jù),因此事務(wù)治理是非常重要的。事務(wù)治理屬性被顯示地定義在部署描述文件中,而容器負(fù)責(zé)治理事務(wù)的邊界。

要實(shí)現(xiàn)對象-關(guān)系映射,那實(shí)體EJB必須能提供插入、更新、查詢、刪除的操作。而用于治理實(shí)體EJB對象與數(shù)據(jù)源之間的映射的過程被稱為持久化。換句話說,持久化是一個將信息寫入外部數(shù)據(jù)源的一個過程。EJB規(guī)范定義了實(shí)體EJB的兩種持久化方式:Bean自身治理的持久化(BMP)和容器治理的持久化(CMP)。 




發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品视频免费网站 | 91久久久久久久一区二区 | 狠狠干天天 | 国产妞干网 | 在线成人www免费观看视频 | 羞羞的网站 | 草草久| 手机av在线电影 | 特色一级黄色片 | 久在线草 | 免费国产wwwwwww网站 | 久久久久久艹 | 国产乱淫a∨片免费视频 | 久久久久久久久久久久99 | 激情亚洲一区二区 | 久久777国产线看观看精品 | 人成免费网站 | 午夜视频福利 | 毛片av网址 | 国产精品久久久久久久久久电影 | 免费久久久 | 久久亚洲美女视频 | 午夜久| 日韩色视频在线观看 | 91精品国产乱码久久久久久久久 | 日韩在线欧美在线 | 视频一区二区精品 | 欧美成年视频 | 国产成人在线观看免费 | 国产超碰人人做人人爱 | 精选久久| 欧美一级做一a做片性视频 日韩黄色片免费看 | 久草在线新时代视觉 | 在线观看免费污视频 | 在线91视频 | 欧美色大成网站www永久男同 | 麻豆porn| sm高h视频| 毛片在线不卡 | 成人三级免费电影 | 黄网免费看 |