首先解釋乙個下面要用到的概念--使用者:session bean 的使用者實際上就是直接呼叫ejb的類的例項,甚至是這個例項的某個方法。同乙個類的不同例項對於session bean 來說是不同的使用者。
有狀態會話bean :每個使用者有自己特有的乙個例項,在使用者的生存期內,bean保持了使用者的資訊,即「有狀態」;一旦使用者滅亡(呼叫結束或例項結束),bean的生命期也告結束。即每個使用者最初都會得到乙個初始的bean。
無狀態會話bean :bean一旦例項化就被加進會話池中,各個使用者都可以共用。即使使用者已經消亡,bean 的生命期也不一定結束,它可能依然存在於會話池中,供其他使用者呼叫。由於沒有特定的使用者,那麼也就不能保持某一使用者的狀態,所以叫無狀態bean。但無狀態會話bean 並非沒有狀態,如果它有自己的屬性(變數),那麼這些變數就會受到所有呼叫它的使用者的影響,這是在實際應用中必須注意的。
有些人可能會有疑問,我們為什麼要知道這樣乙個概念性問題(其實我當時就是這樣想的):
當在三大框架整合的時候,我們可以能如果知道這個只是得話,有個知識點就很容易配置了,singleton是否配置
bean的託管狀態和游離狀態
session狀態,託管狀態和游離狀態,在jpa中當在程式中從後台資料庫加 載乙個bean,並呼叫這個 bean的set方法以後 product.setdescription 在jpa中假如有openinview的設定,那麼系統就會同步的將修改過的值同步儲存到資料庫中去,假如不想讓修改過的值同步儲存...
會話Bean中的有無狀態,
無狀態就是說有被很多使用者使用,前乙個使用者設定的值會很容易被後乙個使用者所更改,所以無法維護乙個使用者所設定的 值,所以稱之為無狀態,有狀態就是指這個bean例項只被乙個使用者所使用所以可以保持乙個使用者所設定的值,所以稱之 為有狀態的。無狀態使用的是例項池來管理bean 有狀態使用的是啟用管理。...
EJB中有狀態會話Bean的理解
想要理解ejb的有狀態的會話bean,我們可以先來看下session是如何儲存客戶端的狀態的。假設有多個客戶端來訪問同乙個伺服器,那麼伺服器是如何來區分這些不同的客戶端呢?我們知道伺服器回返回乙個jsessionid給客戶端,客戶端將這個jsessionid寫到客戶端的cookie中。每次客戶端向伺...