Java企業(yè)應(yīng)用系統(tǒng)框架的比較與選擇
來(lái)源:易賢網(wǎng) 閱讀:645 次 日期:2015-04-15 14:30:16
溫馨提示:易賢網(wǎng)小編為您整理了“Java企業(yè)應(yīng)用系統(tǒng)框架的比較與選擇”,方便廣大網(wǎng)友查閱!

目前流行的Java企業(yè)應(yīng)用系統(tǒng)框架種類繁多,為了使開發(fā)人員正確選擇系統(tǒng)架構(gòu)從而提高Java企業(yè)應(yīng)用的開發(fā)效率,首先針對(duì)基于EJB和基于POJOs的較為流行的幾種框架分別進(jìn)行了概述,然后對(duì)這些框架從表現(xiàn)層、業(yè)務(wù)邏輯層和持久層的實(shí)現(xiàn)細(xì)節(jié)進(jìn)行了對(duì)比,總結(jié)了Java企業(yè)應(yīng)用系統(tǒng)框架選擇需要側(cè)重考慮因素,得到了基于EJB的框架和基于POJOs的框架分別適用的范圍。

EJB的體系結(jié)構(gòu)是J2EE的基礎(chǔ)和核心,J2EE定義了整個(gè)標(biāo)準(zhǔn)的應(yīng)用開發(fā)體系結(jié)構(gòu)和一個(gè)部署環(huán)境,基于EJB的框架一度成為人們開發(fā)Java企業(yè)應(yīng)用的首選。隨著Java開源項(xiàng)目陣營(yíng)的發(fā)展壯大, 一些基于POJOs(Plan Old Java Objects)的開源框架被越來(lái)越廣泛地引入到Java企業(yè)應(yīng)用的開發(fā)中來(lái)。根據(jù)復(fù)雜程度人們習(xí)慣把前者稱為重量級(jí)框架,把后者稱為輕量級(jí)框架。Java企業(yè)應(yīng)用框架一般被劃分為三個(gè)層次:表現(xiàn)層、業(yè)務(wù)邏輯組件層和持久層。本文主要對(duì)目前企業(yè)應(yīng)用對(duì)應(yīng)于這三個(gè)層次的兩種類型的流行框架進(jìn)行了細(xì)節(jié)比較,最后針對(duì)Java企業(yè)應(yīng)用的系統(tǒng)框架選擇提出作者的觀點(diǎn)。

兩種類型框架概述

1、基于EJB的重量級(jí)框架

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

J2EE1.4標(biāo)準(zhǔn)規(guī)定的EJB 2.1框架缺少設(shè)計(jì)且實(shí)現(xiàn)起來(lái)有些過(guò)于復(fù)雜。當(dāng)前J2EE5.0的新規(guī)范提出的EJB 3.0的目標(biāo)就是簡(jiǎn)化開發(fā)[1],借鑒了一些基于POJO的思想,它相對(duì)于EJB2.1中兩個(gè)重要的變化分別是:一是使用了Java5中的程序注釋工具,注釋取代了過(guò)多的XML配置文件并且消除了嚴(yán)格組件模型需求;二是采用了基于Hibernate和TopLink思想的O/R Mapping模型。

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

2、基于POJOs的輕量級(jí)框架

在基于POJOs輕量級(jí)框架上開發(fā)的應(yīng)用程序無(wú)需依賴于EJB容器可獨(dú)立運(yùn)行,對(duì)應(yīng)于Java企業(yè)應(yīng)用三個(gè)層次的輕量級(jí)框架技術(shù)分別都得到了一定的發(fā)展,這三個(gè)層次流行的框架如下:

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

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:Java企業(yè)應(yīng)用系統(tǒng)框架的比較與選擇
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)