EJB3.0 三種bean

來源:互聯網
上載者:User


會話bean(sessionbean):負責與用戶端互動,是編寫商務邏輯的地方,在會話bean中通過操作實體bean來完成對資料庫的操作。
會話bean分為兩種:
無狀態會話bean (Stateful SessionBean):平常使用最多的是無狀態bean,因為它的bean執行個體可供多個使用者使用,所以它的效能比有狀態bean高。正因為一個bean執行個體被多個使用者使用,那麼前一個使用者佈建的值有可能被後一個使用者所修改,所以它無法正確儲存某個使用者佈建的值,因此是無狀態的。
如下代碼:

 

有狀態會話bean (Stateless SessionBean):有狀態會話bean在項目中我還沒有使用過,因為它的一個bean執行個體只供一個使用者使用,所以效能開銷比較大,正因為它的執行個體只被一個使用者使用,使用者為它設定的值是不會被其他使用者修改,所以可以正確儲存使用者佈建的值,因此是有狀態的。
當客戶機和伺服器建立串連之後,狀態會話bean將一直在客戶機和伺服器之間保持著使用者的某個狀態。


有狀態Bean只是在類的註解上使用了:@Stateful
在代碼上有狀態Bean和無狀態Bean區別不大,但是卻是用了Bean執行個體的兩種管理技術,即:
1. 無狀態bean使用執行個體池技術管理bean。 容器會建立一些bean的執行個體,等待客戶使用,和資料庫連接池原理類似。
2. 有狀態bean使用啟用(activation)管理bean。 不存在、建立bean、鈍化、啟用。
EJB引入了啟用機制。啟用機制實現的原理是這樣的,在EJB伺服器需要節省資源時,就從記憶體中收回bean執行個體,將其所保持的工作階段狀態序列化到硬碟中,並且釋放其所佔有的記憶體,這個過程為鈍化。若此時用戶端對EJB再次發起請求,EJB容器會重新執行個體化一個Bean執行個體,並從硬碟中將之前的狀態恢複,這叫做啟用。

實體bean(entitybean):它實際上屬於java持久化規範(簡稱JPA)裡的技術,JPA的出現主要是為了簡化現有的持久化開發工作和整合ORM技術,結束現在Hibernate、TopLink等ORM架構各自為營的局面。

訊息驅動bean(message-drivenbean):它是專門用於非同步處理java訊息的組件,具有處理大量並發訊息的能力。只有在需要一個JMS客戶的時候才會實用訊息驅動bean。換句話說,訊息驅動bean可以監聽來自JMSMessage Service的訊息。客戶絕對不會直接調用訊息驅動bean;要想讓訊息驅動做點什麼事情,客戶必須向一個Message Service發出一條訊息。這說明,訊息驅動bean沒有相應的EJBObject,因為伺服器會從Message Service直接得到客戶請求,而不是當客戶向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.