自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

EJB的分類及其各自的功能和應(yīng)用

開發(fā) 后端
本文向您介紹EJB的分類,并通過分析電子購物環(huán)節(jié)的業(yè)務(wù)邏輯層的對象模型來說明各種EJB在業(yè)務(wù)邏輯層中的不同應(yīng)用

在EJB2.0中對定義了三種不同類別的EJB分類:Session Bean(會話Bean)、Entity Bean(實(shí)體Bean)和Message-Driven Bean(消息驅(qū)動Bean)。

1 EJB分類之會話Bean

會話Bean是商務(wù)過程對象,執(zhí)行商務(wù)邏輯、規(guī)則和工作流程。會話Bean之所以被稱為會話Bean,是因?yàn)樗淼氖且粋€(gè)動作、是一個(gè)過程,它的生存期就是調(diào)用它的客戶端與它進(jìn)行會話的過程。

會話Bean根據(jù)其是否保存客戶的狀態(tài),又分為狀態(tài)會話Bean和無狀態(tài)會話Bean。狀態(tài)會話Bean是一種保持會話狀態(tài)的服務(wù),每個(gè)實(shí)例都與特定的客戶機(jī)相關(guān)聯(lián),在與客戶機(jī)的方法調(diào)用之間維持對話狀態(tài)。與之相反,無狀態(tài)會話Bean不保存與特定客戶的對話狀態(tài)。因此狀態(tài)會話Bean比無狀態(tài)會話 Bean具有更多的功能,而無狀態(tài)會話Bean實(shí)例可以通過 EJB容器自由地在客戶機(jī)之間交換,從而少量的會話Bean就可以服務(wù)于大量的客戶機(jī)。

2 EJB分類之實(shí)體Bean

實(shí)體Bean代表商務(wù)上的實(shí)體,比如商務(wù)數(shù)據(jù),應(yīng)該包含與數(shù)據(jù)相關(guān)的邏輯。實(shí)體Bean是對應(yīng)到數(shù)據(jù)庫中的一個(gè)視圖,一個(gè)實(shí)體Bean實(shí)例和底層數(shù)據(jù)庫完全是一回事。因此,一個(gè)簡單的實(shí)體bean實(shí)例代表一個(gè)特殊的記錄。更復(fù)雜的實(shí)體bean可以代表數(shù)據(jù)庫表間關(guān)聯(lián)視圖。

實(shí)體Bean有兩種操作類型:BMP(Bean管理持久性)和CMP(容器管理持久性)。BMP是指由Bean自己來實(shí)現(xiàn)實(shí)體Bean的持久性,即在 Bean中實(shí)現(xiàn)數(shù)據(jù)庫操作。而CMP則是由容器實(shí)現(xiàn)Bean的持久性,使我們不需要在Bean內(nèi)再編寫數(shù)據(jù)庫操作的代碼。

3 EJB分類之消息驅(qū)動Bean

消息驅(qū)動Bean是EJB2.0新引入的一種Bean類型。它的主要目的是,通過允許容器去聚合并且管理消息驅(qū)動Bean實(shí)例,以此來提供傳入JMS消息的并發(fā)處理。

4 會話Bean與實(shí)體Bean的區(qū)別和聯(lián)系

會話Bean執(zhí)行應(yīng)用邏輯,它們隱含地使用實(shí)體Bean作為它們操作的數(shù)據(jù)。在EJB分布式對象體系結(jié)構(gòu)中,會話Bean被用做代表實(shí)際商務(wù)過程的高層接口來屏蔽底層實(shí)體Bean子系統(tǒng)。實(shí)體Bean是實(shí)際恒定商務(wù)實(shí)體的模型,因此它通常比會話Bean具有更高層次的重復(fù)使用。

5 EJB的應(yīng)用

接下來,通過分析電子購物環(huán)節(jié)的業(yè)務(wù)邏輯層的對象模型來說明各種EJB在業(yè)務(wù)邏輯層中的不同應(yīng)用。

業(yè)務(wù)邏輯層包含了一系列EJB組件。首先我們將其抽象成若干個(gè)對象模型,如圖所示:

              
                                                                 圖:對象模型圖

本圖首先反映了電子商務(wù)中各EJB組件之間的靜態(tài)關(guān)系。

由多個(gè)購物籃條目(Cart Line Item)組成的一個(gè)購物籃(Cart)為一個(gè)顧客 (Customer)存儲產(chǎn)品的臨時(shí)選擇;由多個(gè)訂單條目(Order line Item)組成的一個(gè)訂單(Order)為一個(gè)顧客存儲產(chǎn)品的永久選擇。購物籃能將自身轉(zhuǎn)換為訂單。

一個(gè)購物籃條目代表一個(gè)產(chǎn)品(Product)的臨時(shí)選擇,一個(gè)訂單條目代表一個(gè)產(chǎn)品的永久選擇。

估價(jià)器(Pricer)在顧客查看購物籃時(shí)計(jì)算購物籃的價(jià)格,并且在顧客最終生成訂單時(shí)計(jì)算訂單的價(jià)格。

訂單處理器(Order Processor)為訂單驗(yàn)證信用卡,發(fā)送E-mail確認(rèn),并標(biāo)識為永久。

同時(shí)從本圖中也可以了解一個(gè)電子購物的過程:首先,在購物時(shí)顧客把自己感興趣的產(chǎn)品放入購物籃中,同時(shí)由估價(jià)器對購物籃進(jìn)行及時(shí)估價(jià)。然后,顧客在確認(rèn)購買后,購物籃能自動生成訂單。再由估價(jià)器計(jì)算出訂單的價(jià)格。接著,由訂單處理器驗(yàn)證顧客信用卡的合法性,在交易完成后為顧客發(fā)送E-mail確認(rèn)交易成功,并將本交易標(biāo)識為永久。

顧客、訂單、產(chǎn)品、訂單條目這幾個(gè)對象是永久性、持續(xù)性對象,例如,顧客信息、產(chǎn)品信息都需要存入數(shù)據(jù)庫,并且在適當(dāng)?shù)臅r(shí)候從數(shù)據(jù)庫中讀取。所以,這幾項(xiàng)都需要用實(shí)體Bean來實(shí)現(xiàn)。

購物籃和購物籃條目只在顧客購物的過程中起作用,所以不是永久性的,而且每一個(gè)購物籃都對應(yīng)于一個(gè)特定的顧客,對應(yīng)于若干條特定的購物車條目,因此購物籃和購物籃條目用狀態(tài)會話Bean來充當(dāng)最合適不過。

估價(jià)器的作用是計(jì)算出購物籃和訂單的價(jià)格,它并沒有和特定的顧客綁定,可以作用于任意的購物籃,而且也不是永久對象,因此估價(jià)器可以用一個(gè)無狀態(tài)會話Bean來充當(dāng)。

訂單處理器是一個(gè)特殊的對象,它通過顧客所要求的不同的付款方式產(chǎn)生不同的訂單,也就是說,它是由不同的付款方式來驅(qū)動的。所以在這里用消息驅(qū)動Bean是最恰當(dāng)?shù)摹?/P>

【編輯推薦】

  1. 使用Eclipse+JBoss+EJB3編寫有狀態(tài)的SessionBean
  2. EJB3.1新特性一覽 Time服務(wù)更強(qiáng)大
  3. 關(guān)于EJB的一些常見問題
  4. EJB3.1新特性詳解 更強(qiáng)大的Time服務(wù)
  5. 精通EJB組件和EJB容器
責(zé)任編輯:佚名 來源: 好喜愛學(xué)習(xí)網(wǎng)
相關(guān)推薦

2011-07-22 12:22:49

室內(nèi)光纜

2009-04-02 13:45:36

網(wǎng)關(guān)網(wǎng)絡(luò)

2009-05-07 14:05:02

MySQL索引分類管理

2009-06-26 14:29:03

2009-06-12 12:46:59

EJB3.0

2009-06-25 15:54:18

設(shè)計(jì)模式EJB

2009-02-16 09:25:43

EJBJavaBeanWebSphere

2009-06-26 16:01:39

EJB組織開發(fā)EJB容器EJB

2011-03-04 10:03:45

EJB數(shù)據(jù)庫應(yīng)用

2009-06-11 16:01:17

EJB容器

2009-06-11 15:26:05

EJB組件EJB容器

2024-08-12 18:22:56

2009-06-12 09:41:07

EJB3.0Spring

2009-06-25 17:08:14

2009-12-15 11:05:05

2009-06-22 16:59:33

POJOSpringEJB 3.0

2021-11-07 15:04:39

機(jī)器學(xué)習(xí)人工智能數(shù)據(jù)

2017-01-17 09:38:52

ZooKeeperHadoopHBase

2009-06-25 16:35:12

EJB技術(shù)

2009-06-22 11:50:00

J2EE Web應(yīng)用快速開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號