關於有狀態和無狀態會話bean的解釋 (轉)

gugu99發表於2007-08-17
關於有狀態和無狀態會話bean的解釋 (轉)[@more@]

現實中,很多朋友對兩種session bean存在誤解,認為有狀態是例項一直存在,儲存每次後的狀態,並對下一次呼叫起作用,而認為無狀態是每次呼叫例項化一次,不保留資訊。仔細分析並用實踐檢驗後,你會發現,事實恰好相反:

有狀態和無狀態會話bean的本質區別是它們的生命期。

首先解釋一個下面要用到的概念--使用者:session bean 的使用者實際上就是直接呼叫的類的例項,甚至是這個例項的某個方法。同一個類的不同例項對於session bean 來說是不同的使用者。

有狀態會話bean :每個使用者有自己特有的一個例項,在使用者的生存期內,bean保持了使用者的資訊,即“有狀態”;一旦使用者滅亡(呼叫結束或例項結束),bean的生命期也告結束。即每個使用者最初都會得到一個初始的bean。

無狀態會話bean :bean一旦例項化就被加進會話池中,各個使用者都可以共用。即使使用者已經消亡,bean 的生命期也不一定結束,它可能依然存在於會話池中,供其他使用者呼叫。由於沒有特定的使用者,那麼也就不能保持某一使用者的狀態,所以叫無狀態bean。但無狀態會話bean 並非沒有狀態,如果它有自己的屬性(變數),那麼這些變數就會受到所有呼叫它的使用者的影響,這是在實際應用中必須注意的。

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-962977/,如需轉載,請註明出處,否則將追究法律責任。

相關文章