1. 程式人生 > >帶你走進EJB--EJB3.0

帶你走進EJB--EJB3.0

在上一篇文章中我們介紹了跟EJB容器相關的那些Java概念,EJBJava的世界中用一個比較高的視角來對EJB有一個初步的瞭解.

EJB的全稱是EnterpriseJavaBeans,是Java中的商業應用元件技術。EJB元件結構是基於元件的分散式計算結構,是分散式應用系統中的元件。它並不是一個產品,而是Java伺服器端服務框架的規範,軟體廠商根據它來實現EJB伺服器。應用程式開發者可以專注於支援應用所需的商業邏輯,而不用擔心周圍框架的實現問題。

作為J2EE常用的十三中技術規範之一,我們需要從一個J2EE的角度瞭解一下EJB.如下圖.

計算機生成了可選文字:JavaEEApplicationlJavaEEApplicationZC116nt樸6rCli6ntMaChlneApplicationClientWBbTIBrJ日V自EE56四6rEnterpriseBeanS一一一一丈因BUSlneSSTierEIS刀erD日tabaS6Ser甘6f

上圖是一個比較簡單Java EE架構圖,從框架圖中我們可以看到

EnterpriseBeans是處於Business Tier,也就是業務邏輯層.

分散式是JavaEE一個基礎的需求,“分散式”的應用到底會以一個什麼樣的形態出現呢?答案就是:EJB。EJB可以讓你像搭積木一樣,通過本地/分散式呼叫組裝不同應用到大型應用中,使你能集中精力來處理企業的業務邏輯,而像事務、網路、安全等等這些底層服務則統統留給EJB伺服器開發商來解決。

為了更好的能夠去理解EJB ,我們先從已有的知識入手,通過對EJB對以前的內容進行一個基本的對比來進一步瞭解其特點.

EJB vs Java Bean

Java Bean 我們都非常的熟悉,在一般的Web專案中都會用到,JavaBean相當於是資料儲存類(不涉及具體業務邏輯),專門用來存數資料,提供getter,setter方法,並且在JVM上可直接執行。

        EnterpriseJavaBean則相當於一個功能模組,提供業務邏輯的服務,而執行時,則需要EJB容器的幫助,EJB必須被佈署在諸如Webspere、WebLogic這樣的容器中,EJB客戶從不直接訪問真正的EJB元件,而是通過其容器訪問。

EJB vs SSH

如果從框架的角度來對比兩個概念.EJB屬於重量級框架,SSH屬於輕量級框架,而兩種型別的框架解決問題的側重點是不同的.

輕量級框架側重於減小開發的複雜度,相應的它的處理能力便有所減弱(如事務功能弱、不具備分散式處理能力),比較適用於開發中小型企業應用。採用輕量框架一方面因為儘可能的採用基於POJOs的方法進行開發,使應用不依賴於任何容器,這可以提高開發除錯效率;目前

SSH已經成為許多J2EE中小型企業應用偏愛的一種架構選擇。

而作為重量級框架EJB框架則強調高可伸縮性,適合與開發大型企業應用。在EJB體系結構中,一切與基礎結構服務相關的問題和底層分配問題都由應用程式容器或伺服器來處理,且EJB容器通過減少資料庫訪問次數以及分散式處理等方式提供了專門的系統性能解決方案,能夠充分解決系統性能問題。

輕量級框架的產生並非是對重量級框架的否定,甚至在某種程度上可以說二者是互補的。輕量級框架在努力發展以開發具有更強大,功能更完備的企業應用;而新的 EJB規範EJB3.0則在努力簡化J2EE的使用以使得EJB不僅僅是擅長處理大型企業系統,也利用開發中小型系統,這也是EJB輕量化的一種努力。

為什麼要用EJB?

通過上文的敘述我們可以得到EJB的一個非常重要的特徵:分散式,這也是最重要的理由.分散式物件之間互相協作,完成特定的業務功能。分散式物件之間應實現分佈透明性。即在客戶端程式碼中無需指定分散式物件的位置(通過配置來解決)。

如果你的應用需要進行分散式部署、如果你的分散式物件需要支援事務、如果你的關鍵業務邏輯需要能夠支援多種不同型別的客戶端,那麼EJB將會是一個很好的選擇。