国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - J2EE基礎之EJB全面了解

J2EE基礎之EJB全面了解

2020-05-31 13:13java教程網 JAVA教程

下面小編就為大家帶來一篇J2EE基礎之EJB全面了解。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

1、什么是EJB

 EJBEnterprise Java Beans),是JavaEE中的商業應用組件技術,是JavaEE三大組件(ServletJSPEJB)之一。EJB提供了讓客戶端使用遠程分布式對象的框架,極大地簡化了具有良好的可擴充性的企業級應用的開發。EJB組件結構是基于組件的分布式計算結構,是分布式應用系統中的組件。

EJBJava服務器端服務框架的規范,為服務器端構件系統定義了一個技術規范。該規范能提供一個標準的、分布式的、基于面向對象的體系結構。它為構件開發者和使用者屏蔽掉復雜的系統級底層功能實現,使開發者專注于業務邏輯的實現,其中一些復雜的底層服務由EJB容器負責。EJB可以根據應用的增長而擴展,EJB服務器提供了負載平衡功能,以及資源的訪問權限控制。

2、EJB容器及組件間通信

 EJB容器為EJB組件提供了運行環境,EJB容器管理EJB的方式與Web容器管理Servlet的方式類似,EJB必須在EJB容器里運行。EJB容器主要管理了EJB的持久性、生命周期管理、安全性管理、事務管理、遠程連接、并發處理、集群和負載均衡等問題。容器管理EJB組件的實例,使EJB組件實現最大的效能和內存利用率。容器能夠激活和鈍化EJB組件、管理實例池等。容器負責管理分布式事務處理的復雜問題,為遠程連接管理低層的通信問題,而且對EJB組件的開發者和客戶都隱蔽了通信問題。因此,EJB組件開發人員可以把精力集中于封裝商務邏輯,容器負責處理其他一切事務。EJB通過ejbContentJNDJ、回調函數等機制與容器交互。

JBoss是一個管理EJB的容器和服務器,支持EJB1.1EJB2.0EJB3的規范,其一般和TomcatJetty綁定使用。

下面請看圖一(EJB容器的工作原理圖):

J2EE基礎之EJB全面了解

圖一:EJB容器工作原理

EJB組件是一種分布式對象,當它被實例化后,可以與其他地址空間中的應用程序進行通信。EJB實例被封裝在框架(skeleton)對象中,它通過存根(stub)對象與客戶端交流。存根不包括商務邏輯,但實現了商業接口。每當存根商業接口上的商業方法被調用時,存根就把網絡消息發送給框架,告訴它調用了哪些方法。框架調用EJB實例的相應方法,并把EJB實例返回的結果發送給存根,由存根把這些結果再返回給相應的應用程序。通過存根和框架這兩個中間對象,屏蔽了分布式對象之間的復雜通信過程。框架由容器實現,而存根由開發工具自動生成,二者都不需要編寫代碼。下面請看圖二(EJB組件通信原理圖):

J2EE基礎之EJB全面了解

圖二:EJB組件間通信原理

3、EJB分類

 EJB組件可以分為會話Bean和消息驅動Bean兩種。會話Bean封裝了商務邏輯,客戶端可以通過本地、遠程、Web服務的方式調用會話Bean的方法來訪問部署在服務器上的應用程序,從而調用其他Bean的方法,會話Bean不具有持久性,即它的數據不保存在數據庫里。其中會話Bean又包括有狀態會話Bean、無狀態會話Bean和單件會話Bean三種。消息驅動Bean通常用作特定類型消息的監聽器,使JavaEE可以處理異步消息,而客戶端不會通過接口訪問消息驅動Bean

下面將依次具體介紹有狀態會話Bean、無狀態會話Bean、單件會話Bean和消息驅動會話Bean

4、無狀態會話Bean

 無狀態會話Bean只為客戶端提供商務邏輯,不為客戶端保留會話狀態。在客戶端調用無狀態會話Bean的方法時,對應會話Bean的屬性會描述這個調用狀態,但僅僅只在該方法調用期間保持這個狀態。當方法調用結束,狀態就被清除。

無狀態會話Bean的生命周期由容器控制。當EJB容器收到客戶端對無狀態會話Bean的請求時,如果EJB不存在,則容器會創建一個Bean的實例,再將需要的資源注入組件,然后容器回調PostConstruct方法,組件創建完畢。此時,Bean從“不存在”狀態轉換到“存在”狀態。客戶端調用結束,容器回調PreDestroy方法,Bean將被銷毀,此時,Bean從“存在”狀態轉換成“不存在”狀態。下面請看圖三(無狀態會話Bean的生命周期):

J2EE基礎之EJB全面了解

圖三:無狀態會話Bean的生命周期

5、有狀態會話Bean

有狀態會話Bean為用戶保留了一次會話狀態,它不能像無狀態會話Bean一樣被放到組件池里讓不同用戶共享。對于有狀態會話Bean來說,只要有客戶端發送請求,容器就創建一個實例與該客戶端對應,一個客戶端對應一個實例。在生存期內,有狀態會話Bean保持了用戶的信息,一旦會話結束,有狀態會話Bean的生命周期也告結束。

有狀態會話Bean有三種活動狀態:不存在、活動和鈍化。當有狀態會話Bean處于活動狀態一段時間后,如果仍然沒有收到外部客戶端的請求,為了節省系統資源,容器會把有狀態會話Bean中的狀態信息序列化到臨時存儲空間,并把有狀態會話Bean從內存中移除,這個過程稱為“鈍化”。在鈍化之前,容器回調PrePassivate方法。當容器收到對已經被鈍化的有狀態會話Bean的請求,會重新初始化有狀態會話Bean的實例,并將狀態信息從臨時空間取出,使之重新回到活動狀態,這個過程稱之為“激活”。在激活之后,容器回調ProActivate方法。當有狀態會話Bean鈍化一段時間后,容器將徹底清除該實例,回調PreDestroy方法。下面請看圖四(有狀態會話Bean的生命周期):

J2EE基礎之EJB全面了解

圖四:有狀態會話Bean的生命周期

6、單間會話Bean

單件會話Bean對每個應用程序實例化一次,并且在應用程序的生命周期中一直存在。單件會話Bean為特定的情景而設計,客戶端可以以共享且并發的模式訪問這個唯一的EJB實例。

單件會話Bean與無狀態會話Bean很相似,區別在于單件會話Bean在應用中只有一個實例,而無狀態會話Bean可以有很多實例,每一個實例都被放在組件池里,使用戶共享。

單件會話Bean像無狀態會話Bean一樣,從不鈍化。其生命周期只包含兩種狀體:“不存在”和“存在”。下面請看圖五(單件會話Bean的生命周期):

J2EE基礎之EJB全面了解

圖五:單件會話Bean的生命周期   

7、消息驅動Bean

消息驅動Bean是設計用來專門處理基于消息請求的組件。消息驅動Bean集成了Java消息服務(Java Message ServiceJMS)和企業Bean的功能。不能由客戶端直接獲取其引用而調用方法,只能由系統消息來啟動。

EJB容器通常創建一個消息驅動Bean的組件池。與無狀態會話Bean類似,消息驅動Bean從不被鈍化,其生命周期只包含兩個階段:不存在和存在。

 消息驅動Bean類必須實現MessageListener接口。當容器檢測到Bean監聽的隊列里的一條消息時,就調用onMessage()方法,將消息作為參數傳入。

以上這篇J2EE基礎之EJB全面了解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲在线电影 | 深夜av在线 | 精品久久久av | 97久久精品人人澡人人爽 | 狠狠综合久久av一区二区老牛 | 国产精品久久久久久吹潮 | 国产精品久久久久久中文字 | 日韩精品一区二区三区视频播放 | 免费成人av网站 | 国产中文字幕在线 | 日本一区二区中文字幕 | 成年人在线看 | 自拍偷拍亚洲一区 | 亚洲h视频 | 激情五月婷 | 欧美一级二级视频 | 免费的污网站 | 欧美二三区 | 自拍小电影| 亚洲一区二区三区视频 | 神马影院一区二区三区 | 麻豆av在线播放 | 在线亚洲免费 | 日本一区二区三区视频免费看 | 亚洲精品字幕 | 亚洲在线一区二区 | 日韩av在线免费 | 久久久91精品国产一区二区三区 | 精品国产一区二区三区小蝌蚪 | 日本不卡一区二区 | 亚洲精品电影在线观看 | 亚洲三级在线 | 国产欧美精品区一区二区三区 | 亚洲不卡高清视频 | 在线永久免费观看日韩a | 中文字幕一区二区在线观看 | 欧美黄色性视频 | 狠狠久 | 欧美va视频 | 激情久久久 | 激情图区在线观看 |