劉亞男
摘要:本文首先介紹了EJB的概念和它的優缺點,并通過分析JavaEE技術的大規模應用帶給EJB的沖擊,指出EJB的缺陷。最后,總結出以后EJB的發展方向。
關鍵詞:EJB;spring
中圖分類號:G718 文獻標識碼:B 文章編號:1672-1578(2016)01-0379-01
EJB (Enterprise JavaBean)是JavaEE重要的組成部分,其定義和規定了一個用于開發基于組件的企業級多重應用的標準。EJB需要嚴格地實現和繼承各種不同類型的接口,相類似的以及重復的代碼功能大量存在。同時EJB的配置也是非常復雜和繁瑣的,同樣通過JNDI進行目標對象查找的也是相當耗時。對于開發者學習EJB的需要高昂代價和成本,項目的具有極低的開發效率,應用程序運行對資源消耗極高,這些缺點都造成了EJB的在使用中非常困難。
隨著JavaEE技術在不同領域大規模廣泛的應用,同時EJB技術也受到很多的質疑,EJB的使用給JavaEE應用開發帶來了很大的開銷成本和開發上的復雜性。在EJB3.0發布之前,就是一個簡單的EJB組件都需要編程遠程/本地接口、Bean實現類以及Home接口,這使得其應用受限。正是由于EJB應用非常復雜,因此EJB也被稱為重量級組件。
為了克服重量級組件EBJ的缺陷,許多輕量級容器因此產生。輕量級容器,是因為它們能將簡單的、普通的JavaBean作為應用組件,并通過IoC(Inversion of Control,控制反轉)來解耦組件之間的依賴關系。隨著輕量級容器的大量的被應用,開發者逐漸開始采用輕量級進行應用程序的開發。Spring框架正是輕量級框架的代表,其著眼于JavaEE應用開發的絕大多數方面,通過其分層架構,并針對它們提供了集成的框架和一攬子解決方案。Spring在數據庫管理、事務管理、持久化管理、線程管理、遠程調用等方面用輕量級方案替代EJB。Spring獨立于各種應用服務器,它是一個開源的組件,我們可以把它視作一個容器,它可以在無應用服務器支持的情況下提供應用服務功能,如聲明式的事務、持久化等。
Spring框架通過IoC容器解決了組件相互的依賴關系,Spring的核心是輕量級IoC容器和AOP(Aspect Oriented Programming,面向切面編程),可以通過簡單的Java對象提供企業級的服務;通過AOP的聲明式的服務,為允許應用的業務邏輯與系統級服務進行內聚性的開發。這些簡單的服務,可以實現系統開發的靈活性、可擴展性和無侵入性。
Spring在當前是一個著名的開源框架,它是在實現簡單的企業級系統開發應運而生的。Spring框架包括很多應用模塊,這些模塊在不同的層次進行擴展,下層為上層提供服務。分層架構是框架的主要優點之一,分層結構可以允許開發者選擇不同的層進行使用不同的組件,同時為應用系統開發提供集成的服務。Spring提供了JavaEE應用的各層的完美解決方案,而不是只單純的服務于某一層。Spring為企業級應用開發提供了"一站式"的解決方案,并貫穿常見的表現層、業務層和持久層[16]的支持。Spring框架包含常用組件的體系結構,Spring Framework架構按功能被劃分為多個封裝的模塊。Spring模塊的之間的裝配十分靈活,在不同的應用場合中,可以通過框架基于不同的子集模塊進行構建。
Spring框架包含相互獨立存在的七個基本的模塊:
SpringCore:Spring框架的核心模塊。它提供基本的IoC容器的實現,即依賴注入。
SpringDAO:提供JDBC的抽象層,能提供編程方式和聲明方式控制事務,使得開發者不用去編寫非業務功能的JDBC代碼。JDBC DAO抽象層提供了有意義的異常層次結構,Spring DAO 中的面向 JDBC 異常繼承了通用的 DAO 異常層次結構,使得在使用過程中非常方便。
SpringContext:構建在Core模塊之上,并對Core模塊的功能進行了擴張。同時提供了高級Spring IoC容器的實現,提供了Bean的訪問方式,并且增加了用于系統資源定義、綁定、資源裝載、透明的裝載上下文方式和事件移值等重要功能。
SpringAOP:它建立了面向方面編程框架,實現了AOP聯盟定義的AOP編程實現。Spring AOP 模塊為基于 Spring 的應用程序中的對象提供了事務管理服務[17]。
SpringORM:為當前流行的對象/關系映射框架(例如Hibernate、MyBatis以及JPA)提供集成。
SpringWeb:提供面向Web應用集成的功能,同時將Spring作為這些Web框架(例如Struts、JSF等)的后端實現。
Spring Web MVC:該模塊提供MVC的實現機制,本框架是一個包含全部功能的可以構建 Web 應用程序的 MVC 優秀實現。通過策略接口使得MVC 框架變成了可以高度可配置的,本框架實現了很多視圖技術,常用的包括 JSP、iText 、Tiles、POI和Velocity。
以上各模塊以分層的方式進行組織,下面的模塊是服務上面的,上面的模塊依賴于下面的模塊,Spring Core模塊位于整個體系結構的最底層,它是Spring Framework工作運作的基礎。
參考文獻:
[1] Flanagan D. JavaScript: the definitive guide[M]. " O'Reilly Media, Inc.", 2002.
[2] 吳曉明,潘永紅,謝惠芳. 基于jQuery的中南大學門戶網站Web UI的實現[J]. 武漢大學學報(理學版),2012,S1:361-364.
[3] Bibeault B, Kats Y. jQuery in Action[M]. Dreamtech Press, 2008.
[4] 許曉曼,唐文忠. Java企業應用系統框架的比較與選擇[J]. 計算機與信息技術,2006,09:68-70.