程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> EJB(Enterprise Java Bean)概述

EJB(Enterprise Java Bean)概述

編輯:JAVA綜合教程

EJB(Enterprise Java Bean)概述


 

一,什麼情況下需要企業Bean

 

企業Bean運行在EJB容器中。企業Bean實際上就是一個封裝了業務邏輯的Java類。

 

需要使用EJB的N個理由:

 

1,分布式!分布式對象之間的相互協作,完成特定的業務功能。分布式對象之間應實現分布透明性(或位置透明性)。即在客戶端代碼中無需指定分布式對象的位置(通過配置來解決)。

2,分布式對象之間的事務支持(RMI不支持事務)。

3,應用程序需要支持不同的客戶端,只需要少量的代碼,就可以讓遠程客戶端訪問到企業Bean。

 

so,如果你的應用需要分布式部署,+分布式對象需要支持事務+關鍵業務邏輯需要能夠支持不同類型的客戶端,那麼EJB將是很好的選擇。

二,EJB的基本分類

1,Enterprise Bean

1,Session Bean (會話Bean) :會話Bean可以執行業務邏輯操作,比如注冊用戶,訂單登記,數據庫操作等等。

會話(session):即從客戶端獲取EJB對象開始,然後調用EJB方法(可以多次),直到客戶端生 命周期結束,或客戶端釋放了EJB對象為止,成為一次會話。隨著會話的終止,EJB對象也有可能會被EJB容器銷毀。

對象的狀態:對象的狀態是由其實例變量的值組成的。

Stateless Session Bean——無狀態會話Bean

並非是說EJB不能存在狀態,而是說EJB容器不會對EJB的狀態做管理

容器會使用實例池的方式,甚至單例的方式來實現無狀態Session Bean

因為EJB容器不會對stateless session bean 的狀態進行管理,所以它的性能要比stateful session bean 的好

Steteful Session Bean——有狀態的會話Bean

有狀態的會話Bean:即EJB能夠為同一個客戶端在多次請求(方法調用)之間保持狀態信息。

2, Message Driven Bean(MDB)——消息驅動Bean,基於JMS

2,Persistence——持久化

Entity Bean——實體Bean

三,定義客戶端訪問的接口

客戶端僅通過業務邏輯Bean所定義的接口來訪問業務邏輯(跟具體實現無關)。

當在開發企業Bean之前,首先要做的第一個決定是:EJB要支持什麼樣的客戶端?因為不同 的客戶端,其訪問方式也將不同。

1,遠程客戶端——客戶端與其調用的EJB對象不在同一個JVM進程中

一個遠程客戶端有如下特性:

1,它可以運行在跟企業Bean不同的機器或不同的JVM進程上

2,它可以是web組件,應用客戶端,或其他企業Bean

3,對遠程客戶端來說,企業Bean的位置是透明的

4,為了創建一個能夠被遠程客戶端訪問的企業Bean,必須用@Remote注解來定義這些企業Bean。

2,本地客戶端——客戶端與其調用在同一個JVM進程中

本地客戶端具有如下特性:

1,它必須與企業Bean運行在同一個JVM中

2,它可能是一個Web組件或別的企業Bean

3,為了創建一個能夠被本地訪問的企業Bean,你必須用@Local注解來定義這些企業Bean

4,一個企業Bean接口可以同時被定義為@Remote和@Local

3,WebService客戶端

webservice客戶端可以訪問無狀態會話Bean接口,只有在業務邏輯方法被標識為@webMethod的時候,web service 客戶端才可以訪問到。

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