EJB3.0開發有狀態會話bean

來源:互聯網
上載者:User

 

EJB3.0開發有狀態的會話bean,步驟與無狀態會話bean類似,只需要在無狀態會話bean中把@Stateless改成@Stateful

ejb類代碼如下

package wang.ejb3.impl;<br />import javax.ejb.EJB;<br />import javax.ejb.Remote;<br />import javax.ejb.Local;<br />import javax.ejb.Stateful;<br />import wang.ejb3.HelloWorld;<br />import wang.ejb3.HelloWorldLocal;<br />@Stateful<br />@Remote(HelloWorld.class)<br />@Local(HelloWorldLocal.class)<br />public class HelloWorldBean implements HelloWorld, HelloWorldLocal {<br />public String sayHello(String name) {<br />return name + "說:你好,世界";<br />}<br />}<br /> 有狀態會話bean開發完成。


雖然無狀態會話bean與有狀態會話bean開發過程很相似,但是它們採用對bean管理技術是不一樣的。


無狀態bean使用執行個體池技術管理bean



在執行個體池中的對象可以被多個使用者共用,與資料來源串連池技術是一樣的,資料來源裡面的串連是可以被很多使用者所共用的,當一個使用者使用串連的時候,其他使用者是不能使用該串連的,只有當這個使用者使用完這個串連之後,這個串連回到了串連池裡面,後面的使用者才能使用這個串連,通過這個串連池技術可以減少資料連線對象的數量,提高系統的效能,無狀態bean使用了執行個體池技術,當一個使用者使用對象時候,其他使用者是不能使用該對象的,只有這個使用者使用完後,對象回到執行個體池中,其他使用者才能使用該對象,所以會減少使用對象的數量來提高系統的效能,顯然無狀態bean的效能比有狀態bean的效能更高。無狀態bean是使用最少的對象數為使用者服務。


有狀態bean使用啟用(activation)管理bean


有狀態bean要為每個使用者建立一個bean執行個體,並且需要在一段時間內緩衝該bean,然而在一個大型公司專屬應用程式中,使用者是很多的,所以就有很多個物件被緩衝起來,增大記憶體的消耗,影響到系統的效能,然而在實際中,每個使用者並不會頻繁地訪問這些對象,所以可以對這種情況進行最佳化,使用啟用技術進行最佳化,當這個bean在一段時間內不再使用的時候,EJB容器會把有狀態bean執行個體的會話資訊序列化到本地磁碟,把這個bean所佔用的記憶體資源釋放掉,如果在這個總的緩衝時間之內,使用者又發起請求,EJB容器會把本地磁碟上的會話資訊還原到記憶體中,為使用者服務,如果在這個總的緩衝時間之內沒有使用者訪問,EJB容器會把本地磁碟上的會話資訊給清除掉,這時,訪問bean執行個體,就會得到逾時異常資訊。

 

 

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.