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

2021-04-12 19:07:15 字數 2138 閱讀 8444

會話(sessionbean的介紹

會話bean

能夠完成客戶所需要的業務操作。作為業務物件,會話

bean

能夠實現業務邏輯,業務規則,演算法,工作流等。比如會話

bean

能夠完成查價,訂單登記,食品壓縮,銀行事務,**交易,資料庫操作,複雜計算等。而且會話

bean

是可重用的元件,供操作業務流程中的邏輯使用。

會話bean的生命週期

會話bean

不是持久化的,它僅僅是記憶體物件,會話

bean

不會儲存到持久化儲存源中,一旦其生存的周邊環境遭到破壞,會話

bean

也將不復存在。通常客戶會話的(

client session

)的持續其決定了使用的會話

bean

的存活期,如果客戶超時

ejb容器將銷毀會話

bean

例項,會話

bean

例項是存活短暫的物件,並且會話

bean

例項不能夠在多客戶間共享。

會話bean的子型別

會話bean

有兩種子型別:有狀態會話

bean

和無狀態會話

bean

有狀態會話bean

實現例項池功能:

ejb容器為了限制記憶體中執行的有狀態會話

bean

例項的數量,

ejb容器需要將有狀態會話

bean

的會話狀態儲存到硬碟或者其它儲存源中,該過程稱之為掛起

(passivation)

。在掛起有狀態會話

bean

後,會話狀態會被安全的儲存下來,而且其釋放的記憶體可以供其他應用(或

ejb例項)使用。一旦被掛起的有狀態會話

bean

例項的客戶再次呼叫它,被掛起的會話狀態將重新回到有狀態的會話

bean

例項中,該過程稱之為啟用activation)。現在有狀態會話

bean

例項恢復了同原先客戶的會話。但是啟用的有狀態會話

bean

例項不一定是服務於原先客戶的那個例項,但並不影響使用。

ejb例項也具有有狀態會話

bean

的例項池功能,在處理多個併發客戶時,只需要在記憶體中存活若干個有狀態會話

bean

例項。代價是掛起和啟用過程將導致

i/o效能瓶頸。維護無狀態會話

bean

例項池是十分簡單的,因為沒有會話狀態需要維護。無狀態會話

bean

不存在掛起和啟用操作,

ejb容器可以隨心所欲的銷毀它。

ejb容器會掛起和啟用哪個有狀態會話

bean

例項?

這取決於

ejb容器。

大部分容器使用最近最少使用(

least recently used lru

)策略,及簡單的掛起最近沒有使用到的有狀態會話

bean

例項。如果有狀態會話

bean

例項最近沒有使用到,則

ejb容器會掛起它,從而將會話狀態儲存到硬碟上。只要有狀態會話

bean

例項沒有參與到客戶請求中,容器就能夠隨時掛起它。

為啟用有狀態會話

bean

例項,大部分

ejb容器都會使用

just-in-time

演算法,即只有在客戶請求到來時,才會啟用有狀態會話

bean

例項。如果客戶請求傳到

ejb容器中,而且容器已經掛起了該客戶的會話狀態,則容器馬上啟用它,從而將掛起狀態資訊寫到記憶體中。

EJB 學習筆記之 會話Bean

企業bean是實現ejb技術的j2ee元件。企業bean在ejb容器中執行 何時需要使用企業bean 如果你的應用程式符合以下的任一條件,你就應該考慮使用企業bean 你的應用程式需要不斷的公升級。為了適應不斷增長的使用者,你可能需要將你的應用程式元件分布在多台不同的機器上執行。雖然並不僅僅是企業b...

EJB中有狀態會話Bean的理解

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

EJB學習筆記 3

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