国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java企業應用系統框架的比較與選擇

2019-11-18 14:06:03
字體:
來源:轉載
供稿:網友
摘 要 目前流行的java企業應用系統框架種類繁多,為了使開發人員正確選擇系統架構從而提高Java企業應用的開發效率,首先針對基于EJB和基于POJOs的較為流行的幾種框架分別進行了概述,然后對這些框架從表現層、業務邏輯層和持久層的實現細節進行了對比,總結了Java企業應用系統框架選擇需要側重考慮因素,得到了基于EJB的框架和基于POJOs的框架分別適用的范圍。

  要害詞
Java企業應用系統框架;EJB3.0;SPRing;Hibernate

  引言

  EJB的體系結構是J2EE的基礎和核心,J2EE定義了整個標準的應用開發體系結構和一個部署環境,基于EJB的框架一度成為人們開發Java企業應用的首選。隨著Java開源項目陣營的發展壯大, 一些基于POJOs(Plan Old Java Objects)的開源框架被越來越廣泛地引入到Java企業應用的開發中來。根據復雜程度人們習慣把前者稱為重量級框架,把后者稱為輕量級框架。Java企業應用框架一般被劃分為三個層次:表現層、業務邏輯組件層和持久層。本文主要對目前企業應用對應于這三個層次的兩種類型的流行框架進行了細節比較,最后針對Java企業應用的系統框架選擇提出作者的觀點。

  兩種類型框架概述

  1、基于EJB的重量級框架

  由于 EJB容器能夠很好的處理系統性能、事務機制、安全訪問權限以及分布式運算等問題,基于EJB框架進行開發能保證企業應用平滑發展,而不是發展到一種規模就重新更換一套軟件系統,且可以保證開發人員將大部份精力集中在業務邏輯的開發上。采用EJB框架開發的企業應用具有必須繼續或依靠EJB容器的特點。EJB充分考慮到了頂級大型項目的需求,使用它幾乎能解決企業級應用涉及到的所有問題,相應的基于EJB框架也是一個功能復雜的重量級框架。

  J2EE1.4標準規定的EJB 2.1框架缺少設計且實現起來有些過于復雜。當前J2EE5.0的新規范提出的EJB 3.0的目標就是簡化開發[1],借鑒了一些基于POJO的思想,它相對于EJB2.1中兩個重要的變化分別是:一是使用了Java5中的程序注釋工具,注釋取代了過多的xml配置文件并且消除了嚴格組件模型需求;二是采用了基于Hibernate和TopLink思想的O/R Mapping模型。

  J2EE5.0的新規范中定義企業應用三個層次的標準實現為:表現層采用JSF(Java Server Face),JSF的開發流程的核心是事件驅動,組件和標簽的封裝程度非常高,很多典型應用已經不需要開發者去處理http。整個過程是通過IoC(依靠注入)[2]來實現的;業務組件層采用EJB3.0的session Bean。EJB3.0答應開發者使用藕合松散的組件來開發應用。這些組件通過自己發布的商業接口來耦合,不必像EJB 2.1規范定義的那樣一個Bean必須遵守的嚴格的組件模型,每一個EJB類必須從某一種抽象類中繼續,并為容器提供了回調的鉤子;持久層采用EJB3.0實體Bean持久化模型,吸收了Hibernate的一些思想采用O/R Mapping模式, EJBQL也有許多重要的改變。

  2、基于POJOs的輕量級框架

  在基于POJOs輕量級框架上開發的應用程序無需依靠于EJB容器可獨立運行,對應于Java企業應用三個層次的輕量級框架技術分別都得到了一定的發展,這三個層次流行的框架如下:

  目前比較流行的開源表現層框架主要有Struts和Tapestry。Tapestry與Struts應用框架不同的是,它是基于組件,而不是面向腳本語言(比如jsp和Velocity)的,組件是由一個定義文件(以XML的格式)、一個Html模板、一個JAVA類構成的;業務組件層輕量級解決方案也不少,包括Spring、Hivemind等。但是目前使用最為廣泛的還是Spring框架,Spring框架是一個基于IoC和AOP(面向方面編程)[3]的構架。采用IoC使得它可以很輕易的實現bean的裝配,提供了簡潔的AOP并據此實現事務治理等,但是它不具備處理應用分布式的能力。Spring的核心要點是:支持不綁定到特定J2EE服務的可重用業務和數據訪問對象。這樣的對象可以在不同J2EE環境(Web或EJB)、獨立應用程序、測試環境之間重用;持久層框主要有Hibernate和各種JDO產品,以及iBATIS。Hibernate是一個開源的O/R Mapping框架,它對JDBC進行了非常輕量級的對象封裝,可以應用在任何使用JDBC的場合,可以在應用EJB的J2EE框架中取代CMP,完成數據持久化的重任。iBATIS是一個簡易的SQL Map工具,它是將手工編寫的在xml配置文件中的SQL語句映射成Java對象。 對應于三個層次的框架比較

  1、表現層框架比較

  MVC設計模式不再是某一種表現層框架的特點而是這幾種框架的共性。Struts框架由于出現時間早,所以使用相對廣泛,它的社區非常活躍,很輕易找到很多現成的開源功能標簽以供使用以及樣例程序可供參考。但是它的組件在頁面中顯示的粗粒度,以及框架類的限制在很多情況下會表現得過于死板,給表示層的開發會帶來一些額外的代碼開銷。JSF在很大程度上類似Struts,只是JSF的組件概念沒有象Struts那樣必須繼續ActionForm的限制,JSF在事件粒度上要比Struts細膩。JSF有的另外一個優勢就是其身后有Sun公司和其他的一些大公司的支持。Tapestry是一個完全組件的框架,Tapestry的組件可以被套嵌并包裹其它組件,因此可以組合形成一個更大的組件或邏輯頁面。組件的行為模式為Web頁面編程提供了很大的方便,事件處理也方便很多。所以,假如做一個對頁面要求靈活度相當高的系統就可以考慮選用Tapestry。

  表1 三種框架的表現層功能技術細節比較



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安陆市| 敦煌市| 西乌珠穆沁旗| 侯马市| 西充县| 景泰县| 白朗县| 蓬安县| 慈溪市| 象山县| 巢湖市| 洞头县| 吴桥县| 疏勒县| 弥勒县| 云浮市| 三门县| 长乐市| 双辽市| 天峨县| 绥棱县| 长宁县| 抚顺市| 雅安市| 昌江| 商都县| 都昌县| 酉阳| 昌黎县| 乌拉特前旗| 军事| 安新县| 兰溪市| 南投市| 喀喇| 深圳市| 兴化市| 鄢陵县| 镇巴县| 新沂市| 中牟县|