EJB 學習筆記之 會話Bean

2021-04-16 20:18:04 字數 1887 閱讀 3378

企業bean是實現ejb技術的j2ee元件。企業bean在ejb容器中執行 。

何時需要使用企業bean

如果你的應用程式符合以下的任一條件,你就應該考慮使用企業bean: 

·你的應用程式需要不斷的公升級。為了適應不斷增長的使用者,你可能需要將你的應用程式元件分布在多台不同的機器上執行。雖然並不僅僅是企業bean可以在不同的機器上執行,但企業bean的執行位置對於客戶端始終是透明的。

·需要用事務機制來保證資料完整性。企業bean支援事務機制以提供對共享資源併發訪問的管理。

·應用程式需要支援眾多不同型別的客戶端。只需要極少的幾行**,遠端客戶端就可以很容易的訪問到企業bean。這些客戶都可以很「瘦」並且在理論上可以是任意數量不同型別的客戶端。

企業bean的分類

會話bean

會話bean表現連線到j2ee伺服器的乙個單獨的客戶端。客戶端通過呼叫會話bean的方法來訪問部署在伺服器上的應用程式。會話bean完成客戶端的請求,從而對客戶端隱藏了伺服器內複雜商務邏輯的執行過程。

正如會話bean的名稱所表示的,它代表一次會話。單獨的會話bean物件是不可以共享的,它只能有乙個客戶端訪問,同樣一次會話也只能有乙個使用者。和一次會話一樣,會話bean物件不是永續性物件。

何時需要會話bean

通常,在出現以下幾種情況時你需要用會話bean:

.在任何給定時間,只有乙個客戶端訪問這個bean的例項。

. bean的狀態並不需要持久儲存,只在乙個時間段(可能是幾小時)內保持。

在以下情況下,建議採用有狀態會話bean:

. bean需要描述乙個於特定客戶端的會話狀態

. bean需要在客戶端的多個方法呼叫之間儲存呼叫資訊

. bean作為應用程式的其他元件和客戶端的中介者,呈現乙個簡單化的檢視給客戶端

.在呼叫介面裡,bean管理很多企業bean的工作流(如18章的accountcontrollerejb的會話bean例子)。

如果你的應用符合以下特性,為了得到更高的效能你應該選擇無狀態會話bean:

.bean的狀態不包含客戶端相關的資料

.在乙個單一方法呼叫中,bean已經可以為客戶端完成所需要的工作。例如你可以用無狀態會話bean發一封郵件確認網路訂單。

.bean需要從資料庫獲取一些客戶端經常訪問的唯讀資料。你可以用這樣的bean來訪問資料表中代表這個月已經賣出的產品的行。

有狀態會話bean

乙個物件的狀態由它的成員變數(資料成員)的狀態決定。有狀態會話bean的成員變數描述乙個唯一的客戶端-會話bean的關聯狀態。因為客戶端要與對應的會話bean進行對話,所以這種狀態通常被叫做會話狀態。

會話狀態在整個會話期間被保留。如果客戶端執行結束或者刪除對應的會話bean,這個會話就結束同時狀態被清除。這種狀態的短暫性並不是問題,相反,如果客戶端和會話bean的對話結束就不必要在保留會話的狀態了。

無狀態會話bean

無狀態會話bean並不為客戶端保留會話狀態。在客戶端掉用無狀態會話bean的方法時,對應會話bean的資料成員會描述這個呼叫狀態,但僅僅只在該方法呼叫期間保持這個狀態。當方法呼叫結束,狀態就被清除。除了在方法呼叫期間,所有同乙個無狀態會話bean例項是等價的,可以被容器分配給任一客戶端。

因為無狀態會話bean可以同時支援多個客戶端,所以能更好的支援應用程式的可數的大量客戶端。很明顯,對支援相同數量的客戶端的應用程式,需要的無狀態會話bean會比有狀態會話bean要少。

有時,ejb容器會在沒有請求的時候把有狀態會話bean儲存在記憶體(二級儲存器second storage)中。不管什麼時候,沒有請求時無狀態會話bean都不會被儲存中。所以,無狀態會話bean會比有狀態會話bean有更高的效能

精通EJB學習筆記(會話bean的介紹)

會話 session bean的介紹 會話bean 能夠完成客戶所需要的業務操作。作為業務物件,會話 bean 能夠實現業務邏輯,業務規則,演算法,工作流等。比如會話 bean 能夠完成查價,訂單登記,食品壓縮,銀行事務,交易,資料庫操作,複雜計算等。而且會話 bean 是可重用的元件,供操作業務流...

EJB中有狀態會話Bean的理解

想要理解ejb的有狀態的會話bean,我們可以先來看下session是如何儲存客戶端的狀態的。假設有多個客戶端來訪問同乙個伺服器,那麼伺服器是如何來區分這些不同的客戶端呢?我們知道伺服器回返回乙個jsessionid給客戶端,客戶端將這個jsessionid寫到客戶端的cookie中。每次客戶端向伺...

EJB學習筆記 3

由於這段時間忙於結束現在的工作和找工作,所以很久沒寫日誌了,今天先補上這一篇,這一次的學習筆記主要是針對 mastering ejb 中的第4,5章講session bean的部分。之前的筆記已經介紹過session bean的主要作用是處理一些業務流程,比如下定單,出貨等等。這篇日誌對sessio...