摘 要:J2EE作為分布式架構(gòu)的企業(yè)級(jí)應(yīng)用平臺(tái),在企業(yè)的信息化建設(shè)中發(fā)揮出越來(lái)越重要的作用。一方面作為企業(yè)信息化應(yīng)用系統(tǒng)的開(kāi)發(fā)工具,另一方面又作為企業(yè)信息化應(yīng)用系統(tǒng)的集成平臺(tái)?;贘2EE的Web應(yīng)用可以規(guī)范應(yīng)用系統(tǒng)的開(kāi)發(fā)與部署,提高系統(tǒng)的可移植性、可重用性。本文介紹框架技術(shù)的原理以及集成上述三種框架技術(shù)的Web應(yīng)用框架。
關(guān)鍵詞:J2EE;應(yīng)用框架;表示層;業(yè)務(wù)邏輯層;系統(tǒng)服務(wù);Hibernate
一、引言
J2EE是一種技術(shù)規(guī)范,是一個(gè)企業(yè)級(jí)的開(kāi)發(fā)平臺(tái),它定義了整個(gè)標(biāo)準(zhǔn)的應(yīng)用體系結(jié)構(gòu)和一個(gè)部署環(huán)境。J2EE提供了對(duì)EJB(EnterpriseJavaBean)、JavaServlet、JSP(JavaServer Pages)以及XML(eXtensible MarkupLanguage可擴(kuò)展標(biāo)記語(yǔ)言)技術(shù)的全面支持。因此,基于J2EE的各種框架技術(shù)應(yīng)運(yùn)而生,這些框架存在于多層體系架構(gòu)的各層,如數(shù)據(jù)持久化層、業(yè)務(wù)邏輯層和表示層等。隨著企業(yè)信息化建設(shè)的加快,各種基于J2EE的應(yīng)用系統(tǒng)會(huì)越來(lái)越多。如何在統(tǒng)一的J2EE分布式架構(gòu)平臺(tái)下,構(gòu)建符合企業(yè)特點(diǎn)的應(yīng)用框架基礎(chǔ)開(kāi)發(fā)平臺(tái),以框架平臺(tái)為基礎(chǔ)進(jìn)行信息化應(yīng)用系統(tǒng)的開(kāi)發(fā)具有十分重要的意義。
二、J2EE應(yīng)用框架技術(shù)
框架(Framework)是可重用的半完成的應(yīng)用程序,可以用來(lái)產(chǎn)生專(zhuān)門(mén)的定制程序??蚣芤话憔哂屑床寮从玫目芍赜眯?、成熟的穩(wěn)定性以及良好的團(tuán)隊(duì)協(xié)作性。J2EE復(fù)雜的多層結(jié)構(gòu)決定了大型的J2EE項(xiàng)目需要運(yùn)用框架和設(shè)計(jì)模式來(lái)控制軟件質(zhì)量,目前主流的框架技術(shù)有基于MVC模式的Struts框架、基于IoC模式的Spring框架以及對(duì)象關(guān)系映射框架Hibernate等。
1.Web開(kāi)發(fā)框架Struts
Struts是以JSP( Java Server Pages) Model2為基礎(chǔ)實(shí)現(xiàn)的一個(gè)MVC設(shè)計(jì)模式的應(yīng)用程序框架。其設(shè)計(jì)思想也是采用面向?qū)ο笤O(shè)計(jì),使MVC設(shè)計(jì)模式、分離顯示邏輯和業(yè)務(wù)邏輯的優(yōu)勢(shì)發(fā)揮得淋漓盡致。Struts框架的核心是個(gè)彈性的控制層,基于如JavaServlets、JavaBeans和XML等標(biāo)準(zhǔn)技術(shù),以及Jakarta Commons 的一些類(lèi)庫(kù)Struts由一組相互協(xié)作的組件 Servlet以及JSPTaglib組成,其核心組件包括ActionServlet,Action,ActionForm,ActionMapping,ActionForward及Taglib配置文件等。
2.Spring框架
常用的中間件解決方案EJB技術(shù)是一種重量級(jí)的容器,必須實(shí)現(xiàn)EJB的接口,依賴(lài)于EJB容器不能單獨(dú)運(yùn)行固定了應(yīng)用功能不能加以配置。Spring則是一個(gè)解決了許多在J2EE開(kāi)發(fā)中常見(jiàn)問(wèn)題、能夠替代EJB技術(shù)的強(qiáng)大框架。它不依賴(lài)于任何的組件是一種輕量級(jí)的容器,因此它可以有效地組織中間件對(duì)象而不管是否還使用了EJB技術(shù)。同時(shí)Spring既是全面的又是模塊化的,它不是一個(gè)強(qiáng)制性框架,可以選擇某個(gè)組件獨(dú)立使用。
3.Hibernate框架
Hibernate是一種基于Java平臺(tái)功能強(qiáng)大的ORM開(kāi)源框架工具,提供了概念型的、易于理解的模型化數(shù)據(jù)。Hibernate對(duì)JDBC進(jìn)行輕量級(jí)的對(duì)象封裝,不僅提供ORM映射服務(wù),同時(shí)還提供數(shù)據(jù)查詢(xún)和數(shù)據(jù)緩存功能,實(shí)現(xiàn)了廣義的業(yè)務(wù)數(shù)據(jù)持久化,即數(shù)據(jù)的保存更新刪除加載和查詢(xún)通過(guò)XML配置文件,將Java持久化類(lèi)映射到關(guān)系數(shù)據(jù)庫(kù)表結(jié)構(gòu),開(kāi)發(fā)人員通過(guò)該框架可使用面向?qū)ο蟮乃枷雽?duì)關(guān)系數(shù)據(jù)庫(kù)進(jìn)行操作在Hibernate技術(shù)的實(shí)施過(guò)程中。
三、J2EE應(yīng)用框架總體結(jié)構(gòu)
基于J2EE的應(yīng)用框架基礎(chǔ)開(kāi)發(fā)平臺(tái)總體結(jié)構(gòu)分為3個(gè)大的組件模塊層次,Web表示層、業(yè)務(wù)邏輯層、系統(tǒng)服務(wù)模塊。
1.Web表示層
提供與用戶(hù)交互的界面,組織用戶(hù)的輸入,響應(yīng)用戶(hù)要求。該Web組件模塊通過(guò)對(duì)表示層框架Structs進(jìn)行改造,通過(guò)模板機(jī)制,為開(kāi)發(fā)者提供一致的接口和通用Web組件庫(kù)。該層包括通用的字符處理過(guò)濾器(SetCharacterEncodingFilter)、通用用戶(hù)認(rèn)證過(guò)濾器(AuthenticationFilter)、通用資源訪(fǎng)問(wèn)控制過(guò)濾器(SecurityFilter)、StrutsAction組件、StructsActionFor組件、ActionServlet組件、JSP/JSTL/View示圖組件、定制Structs插件(Plugin)以及定制標(biāo)簽庫(kù)(taglib)等,提供一致的接口和類(lèi)為應(yīng)用開(kāi)發(fā)者提供具體應(yīng)用表示層開(kāi)發(fā)。
2.業(yè)務(wù)邏輯層
接受Web表示層傳來(lái)的數(shù)據(jù)傳輸對(duì)象DTO,DTO封裝了用戶(hù)的請(qǐng)求信息,根據(jù)業(yè)務(wù)系統(tǒng)的業(yè)務(wù)邏輯處理具體業(yè)務(wù),該層包括領(lǐng)域?qū)ο?、業(yè)務(wù)對(duì)象接口(BPO)及實(shí)現(xiàn)(BPOImpl)、業(yè)務(wù)服務(wù)接口及實(shí)現(xiàn)(ServiceImpl)以及服務(wù)定位器(Service Locator)、數(shù)據(jù)訪(fǎng)問(wèn)對(duì)象(DAO)接口與實(shí)現(xiàn)(DAO Impl)等實(shí)現(xiàn)具體應(yīng)用系統(tǒng)的業(yè)務(wù)邏輯的處理,通過(guò)該層的業(yè)務(wù)封裝提供一致的業(yè)務(wù)開(kāi)發(fā)方法。同時(shí),對(duì)于數(shù)據(jù)持久化的選擇通過(guò)封裝Hibernate來(lái)實(shí)現(xiàn)對(duì)象和關(guān)系的映射,提供可配置的數(shù)據(jù)持久化解決方案。
3.系統(tǒng)服務(wù)層
系統(tǒng)服務(wù)層是通過(guò)對(duì)各種企業(yè)級(jí)信息化應(yīng)用系統(tǒng)的分類(lèi)、抽象,針對(duì)信息化應(yīng)用系統(tǒng)都需要解決的技術(shù)架構(gòu)和公共通用業(yè)務(wù)組件模塊等問(wèn)題,提供系統(tǒng)級(jí)的抽象和服務(wù)。主要包括會(huì)話(huà)管理、資源加載、組件管理、服務(wù)定位、日志管理、認(rèn)證與安全控制、異常處理、郵件管理、任務(wù)管理、組織結(jié)構(gòu)管理、工作流引擎和公用業(yè)務(wù)構(gòu)件等系統(tǒng)服務(wù)。
四、結(jié)束語(yǔ)
本文通過(guò)J2EE應(yīng)用框架的介紹開(kāi)始,分析研究了基于J2EE的應(yīng)用框架技術(shù),Struts、Spring、Hibernate[(下轉(zhuǎn)第147頁(yè))][(上接第70頁(yè))]3個(gè)框架的基本原理,最后提出了應(yīng)用框架的總體結(jié)構(gòu)。分別是WEB表示層、業(yè)務(wù)邏輯層和系統(tǒng)服務(wù)層。希望通過(guò)多個(gè)具體項(xiàng)目的應(yīng)用研究、逐步完善該總體結(jié)構(gòu),逐步積累各層次的組件和業(yè)務(wù)構(gòu)件庫(kù),達(dá)到提高軟件機(jī)構(gòu)研發(fā)信息化應(yīng)用系統(tǒng)研發(fā)能力和效率、規(guī)范軟件的研發(fā)過(guò)程。
參考文獻(xiàn):
[1]劉中兵.開(kāi)發(fā)者突擊:JavaWeb主流框架整合開(kāi)發(fā):J2EE+Struts+Hibernate+Spring[M].北京:電子工業(yè)出版社,2008.
[2]陳天河.Struts Hibernate Spring集成開(kāi)發(fā)寶典[M].北京:電子工業(yè)出版社,2007.
[3]Bruce Eckel. Java 編程思想[M].侯捷,譯.北京:機(jī)械工業(yè)出版社,2002.
[4]孫衛(wèi)琴.精通Struts:基于MVC的JAVAWeb設(shè)計(jì)與開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2009.