日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

EJB概述

發(fā)布時間:2023/12/14 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EJB概述 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

? ? EJB含義為企業(yè)Java Beans。EJB是J2EE平臺的重要組成部分。開發(fā)者可以在J2EE平臺使用基于組件的體系結構,該結構目的為企業(yè)級應用程序提供多層、分布式和高度事務性等特性。

? ? EJB提供了一種開發(fā)和部署基于組件的企業(yè)應用程序的體系結構,考慮到健壯性、高可伸縮性和高性能。EJB應用程序可以部署在任何符合J2EE 1.3標準規(guī)范的應用服務器上。

? ? 在本博客系列中,我們將詳細討論EJB3.0。

一、分類

? ? EJB主要分為三類;下表列出了它們的名稱和簡要說明–

? ? EJB 依照特性的不同,目前區(qū)分為三種,分別是 Session Bean ,Entity Bean ,以及 Message Driven Bean 。其中 Session Bean 與Entity Bean 算是 EJB 的始祖,這兩種 EJB 在 EJB 規(guī)格 1.x 的時候就已經存在了,而 Message Driven Bean 則出現(xiàn)在 EJB 2.0 的規(guī)格中。

類型描述
Session Bean會話bean為單個會話存儲特定用戶的數(shù)據(jù)。它可以是有狀態(tài)的或無狀態(tài)的。與實體bean相比,它的資源密集度更低。一旦用戶會話終止,會話bean就會被銷毀。
Entity Bean實體bean表示持久數(shù)據(jù)存儲。用戶數(shù)據(jù)可以通過實體bean將數(shù)據(jù)保存到數(shù)據(jù)庫中,也可以通過實體bean對數(shù)據(jù)庫檢索。
Message Driven Bea消息驅動bean用于JMS(Java消息傳遞服務)環(huán)境中。消息驅動bean可以使用來自外部實體的JMS消息并依次執(zhí)行。

? ?(一)Session Bean?

? ? Session Bean 主要的目的是讓程序開發(fā)者將邏輯層抽離,特別是復雜的邏輯可以放在 Session Bean 中。 Session Bean 還可以再細分為Stateful Session Bean 與 Stateless Session Bean ,這兩種的 Session Bean都可以將系統(tǒng)邏輯放在 method 之中執(zhí)行,不同的是 Stateful Session Bean 可以記錄呼叫者的狀態(tài),因此通常來說,一個使用者會有一個相對應的 Stateful Session Bean 的實體 (Instance 注一 ) ,換言之,當使用者呼叫某個 Stateful Session Bean 的兩個 methods 的時候,EJB Container( 注一 ) 會清楚的知道某個 EJB 的實體屬于某一個使用者的。因此一般的設計上,不會讓兩個使用者同時使用某個 Stateful Session Bean ( 這并不是表示兩個使用者不能使用同一個 Stateful Session Bean) 。


? ? Stateless Session Bean 雖然也是邏輯組件,但是他卻不負責記錄使用者狀態(tài),也就是說當使用者呼叫 Stateless Session Bean 的時候,EJB Container 并不會找尋特定的 Stateless Session Bean 的實體來執(zhí)行這個 method ,換言之,很可能數(shù)個使用者在執(zhí)行某個 Stateless Session Bean 的 methods 時,會是同一個 Bean 的 Instance 在執(zhí)行。


? ? 從內存方面來看, Stateful Session Bean 與 Stateless Session Bean 比較, Stateful Session Bean 會消耗 J2EE Server 較多的內存,然而 Stateful Session Bean 的優(yōu)勢卻在于他可以維持使用者的狀態(tài)。


? ? (二)Entity Bean

? ? ?Entity Bean 主要是資料組件, Entity Bean 主要的目的,在于提供資料,也就是說程序設計師可以將 Entity Bean 當程序資料,至于 Entity Bean 實際上怎么存取實際上的數(shù)據(jù)庫,那個則是另外一件事情。


? ? Entity Bean 實際上是針對 RDBMS 而設計,也就是說當其它的程序使用 Entity Bean 的時候, Entity Bean 的資料主要是從 RDBMS 而來,當然,如果程序設計師熟悉 Entity Bean 的運作,那么也可以很輕易的把RDBMS 用其它的數(shù)據(jù)庫取代,像是 LDAP 。


? ? Entity Bean 主要區(qū)分為 Bean-Managed Persistence 以及 Container-Managed Persistence ( 簡稱 BMP 及 CMP) ,這兩種 Entity Bean 的型態(tài)不同,但是目的相同,都在于提供資料!這兩種 Entity Bean 主要的差別在于維護資料的角色, BMP 是由 Bean 自行維護資料的一致性,而 CMP 則是由 EJB Container 來維護。一個 Entity Bean 往往代表一張RDBMS 的表格,這個表格內的一筆一筆的資料,則是透過另外一個叫做 Primary Key( 注三 ) 的 Class 來加以區(qū)分。

? (三)Message Driven Bean

? ? ?Message Driven Bean 與 Session Bean 或是 Entity Bean 均不相同,一般 Session Bean 或是 Entity Bean 都可以讓使用者主動觸發(fā)(可以在需要的時候,呼叫他們的 method 來觸發(fā)他們),但是 Message Driven Bean 主要的目的在于反應 Message Queue 中的事件。

?

二、EJB的優(yōu)點

? ? 以下是EJB的重要優(yōu)點-

? ? 1 簡化了大型企業(yè)級應用程序的開發(fā)。

? ? 2 Application Server/EJB容器提供了大多數(shù)系統(tǒng)級服務,如事務處理、日志記錄、負載平衡、持久性機制、異常處理等。開發(fā)人員只需關注應用程序的業(yè)務邏輯。

? ? 3 EJB容器管理EJB實例的生命周期,因此開發(fā)人員不必擔心何時創(chuàng)建/刪除EJB對象。

參考:https://www.iteye.com/blog/jessicacao-257289

? ? ? ? ? ?https://www.tutorialspoint.com/ejb/ejb_overview.htm

?

?

?

總結

以上是生活随笔為你收集整理的EJB概述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。