程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 有狀態和無狀態會話bean的區別

有狀態和無狀態會話bean的區別

編輯:關於JAVA

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

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

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

有狀態會話bean :每個用戶有自己特有的一個實例,在用戶的生存期內,bean保持了用戶的信息,即“有狀態”;一旦用戶滅亡(調用結束或實例結束),bean的生命期也告結束。即每個用戶最初都會得到一個初始的bean。

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved