亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        WSHCF框架的設(shè)計思想研究

        2013-12-31 00:00:00王輝
        數(shù)字化用戶 2013年12期

        【摘 要】WSHCF就是一個構(gòu)建于多個應(yīng)用框架(如Spring,Wicket和Hibernate)之上的框架,對軟件開發(fā)有重要的意義。本文對WSHCF的設(shè)計思想及設(shè)計目標(biāo)進(jìn)行分析,介紹WSHCF的設(shè)計思想,選取并分析實現(xiàn)WSHCF所需的相關(guān)基礎(chǔ)技術(shù)。

        【關(guān)鍵詞】Web應(yīng)用 J2EE 框架 MVC

        一、引言

        目前,在應(yīng)用軟件框架方面,已有深入詳細(xì)的研究。又因為開放源代碼的迅速發(fā)展,基于J2EE系統(tǒng)的WEB應(yīng)用框架不斷被開發(fā),包括基于MVC的Struts、Wicket、Webwork,處理持久層的Hibernate、Ibatis以及為Spring所有層面服務(wù)等等。因為應(yīng)用框架很多,且品質(zhì)差異較大,怎樣復(fù)用的問題便顯得尤為重要。針對此類問題,最好的方法便是松耦合最優(yōu)的框架,為構(gòu)建更通用的框架做準(zhǔn)備,向上層屏蔽各種問題,包括功能冗余以及層間通信等等,進(jìn)而提供給應(yīng)用程序開發(fā)者以及界面設(shè)計師統(tǒng)一透明的開發(fā)平臺。其中,此通用框架便指的是WSHCF,它構(gòu)建于多種應(yīng)用框架(包含Spring,Wicket和Hibernate)之上。通用型WSHCF框架的意義包括以下幾個方面:

        (一)目前,WSHCF已經(jīng)結(jié)合了專業(yè)化系統(tǒng)結(jié)構(gòu)的設(shè)計方案,這些設(shè)計可以簡單地被復(fù)用,集中精力在特殊應(yīng)用上;

        (二)因為層間松耦合的實現(xiàn),以WSHCF為基礎(chǔ)開發(fā)的應(yīng)用便較易于理解、測試及維護,提高了應(yīng)用的可擴展性及可維護性。

        (三)便于層間通信,提供出基本的公共功能,縮短了開發(fā)的時間、減少了重復(fù)開發(fā)、提高了軟件的生產(chǎn)率、降低了開發(fā)的成本等等。WSHCF通用框架的最終目標(biāo)就是增強軟件的生產(chǎn)率。

        二、設(shè)計思想

        (一)分層設(shè)計

        不管是三層設(shè)計還是多層設(shè)計,最終目的便是分離應(yīng)用邏輯、前端表現(xiàn)及數(shù)據(jù)存儲,經(jīng)清晰靈活的組件式開發(fā)以及策略的部署,加強企業(yè)在應(yīng)用上的伸縮性及靈活性等等。以分層設(shè)計為基礎(chǔ)也是WSHCF的總體思想。

        (二)組件編程

        在設(shè)計大規(guī)模軟件的時候,就理應(yīng)要求模塊化了,模塊間相互依存的關(guān)系應(yīng)保證穩(wěn)定且松耦合,也就是組件設(shè)計的中心指導(dǎo)思想。

        選用Wicket而不是Struts作為WSHCF的表現(xiàn)層框架就是因為Wicket是完全面向組件的。Wicket將一個應(yīng)用程序分成很多個頁面,而一個頁面又是由若干組件組成的,不需要去關(guān)心任何Servlet細(xì)節(jié),也不需要關(guān)心如何生成URL和URL的結(jié)構(gòu),Wicket會自動生成合適的URL跳轉(zhuǎn)頁面或者傳遞參數(shù)。

        (三)控制反轉(zhuǎn)的IOC

        此類編程需要面向組件,屬于架構(gòu)技術(shù)的應(yīng)用,最關(guān)鍵的問題便是怎樣解決組件間的依賴性。相應(yīng)的機制便是控制反轉(zhuǎn)(或者IOC),即能夠解決這一問題的方案。WSHCF借助 Spring IOC功能來實現(xiàn)各個組件之間的自動裝配。

        (四)面向方面的編程AOP

        面向方面的編程AOP(Aspect-Oriented Programming)以另一角度來看的程序結(jié)構(gòu),它的目標(biāo)便是完善面向?qū)ο蟮木幊蹋碠OP)。它可以分解應(yīng)用程序成為多個層次,相應(yīng)地,AOP可以分解程序到各方面。將事務(wù)管理等模塊化。對于Spring來講,其關(guān)鍵組件便是AOP框架。另外,Spring 的IOC容器不依賴AOP,當(dāng)沒有必要的時候,可以不使用AOP,另外,Spring IOC的完善,有效地解決了中間件的問題。

        三、WSHCF的設(shè)計目標(biāo)

        WSHCF的目標(biāo)就是要成為一種企業(yè)級應(yīng)用的基礎(chǔ)框架,即一個通用框架,或者是一個通用的開發(fā)平臺。從技術(shù)的角度看,它構(gòu)建于操作系統(tǒng)、關(guān)系數(shù)據(jù)庫、基礎(chǔ)開發(fā)語言(Java)之上而處于具體應(yīng)用系統(tǒng)之下,從用戶(參與者)的角度來看,它處于應(yīng)用系統(tǒng)開發(fā)者和(操作系統(tǒng)、網(wǎng)絡(luò)、數(shù)據(jù)庫)系統(tǒng)管理者之間。對于框架架構(gòu)師(Framework Architect)而言,主要從技術(shù)角度來考慮WSHCF所要實現(xiàn)的目標(biāo)。考慮到WSHCF如何為用戶界面設(shè)計師(User interface Designer)以及業(yè)務(wù)邏輯工程師提供便利,這樣便可以實現(xiàn)企業(yè)系統(tǒng)應(yīng)用的開發(fā)。

        (一)自動生成及管理域?qū)ο髮?/p>

        對于軟件架構(gòu)來講,設(shè)計域?qū)ο髮油鶗缓雎?。通常,域?qū)ο髮幼鳛閿?shù)據(jù)持久化操作的載體,面向應(yīng)用系統(tǒng)開發(fā)的起點,依賴于底層數(shù)據(jù)庫的設(shè)計而存在。對于WSHCF而言,域?qū)ο髮右话惆▋煞矫妫河驅(qū)ο竽P鸵约皩ο?關(guān)系文件。通常地,域?qū)ο蠓弦?guī)范化的JavaBeans,但一般而言,對象映射-文件的類型是XML。人工編寫具有明顯的缺陷,不僅編碼量多,還易出錯。在系統(tǒng)構(gòu)架建設(shè)的前期,持久層以及業(yè)務(wù)邏輯應(yīng)用域模型及對象關(guān)系文件作為基礎(chǔ),需通過自動統(tǒng)一的機制來生成和管理它們。

        (二)對象持久化

        所謂對象持久化,指的是在設(shè)計數(shù)據(jù)持久層的時候需要充分考慮的問題。當(dāng)J2EE應(yīng)用系統(tǒng)的結(jié)構(gòu)具有多層的時候,構(gòu)建持久層框架意義重大:使得持久層能夠封裝訪問數(shù)據(jù)庫的各種類,提供簡易的CRUD接口;將實現(xiàn)機制隱藏起來,不需對數(shù)據(jù)存儲的細(xì)節(jié)深入了解就能夠精于業(yè)務(wù)領(lǐng)域。換句話說,數(shù)據(jù)持久層為整個應(yīng)用系統(tǒng)提供了統(tǒng)一靈活的機制。完善的持久層需具備以下方面:

        1.可以提供出持久化的編程接口。也就是說,可以經(jīng)一種接口提供給上層調(diào)用CRUD 操作,避免了手工編寫的出錯風(fēng)險。

        2.盡可能地減少數(shù)據(jù)訪問的瓶頸。數(shù)據(jù)訪問決定了系統(tǒng)的整體性能,應(yīng)用到Web當(dāng)中的時候,應(yīng)用系統(tǒng)的瓶頸來源于磁盤IO以及網(wǎng)絡(luò)IO,需要持久層來提供相應(yīng)的機制盡可能地減少應(yīng)用性能瓶頸的發(fā)生。

        3.可以支持各種數(shù)據(jù)庫的平臺。這樣底層數(shù)據(jù)庫便不會影響持久層的實現(xiàn);與此同時,還課可以支持?jǐn)?shù)據(jù)庫的專有性(包括Oracle處理大對象的問題)。

        (三)各層間的數(shù)據(jù)轉(zhuǎn)換

        所謂數(shù)據(jù)轉(zhuǎn)換,指的是轉(zhuǎn)換來自不同層次的數(shù)據(jù)[6]。通常,較為典型的需求包括:把由關(guān)系數(shù)據(jù)庫當(dāng)中的記錄轉(zhuǎn)換成持久對象,把持久對象轉(zhuǎn)換成表現(xiàn)層的值對象,其中,需要確保數(shù)據(jù)的準(zhǔn)確性及完整性。所以,通用框架需能夠提供出相應(yīng)的數(shù)據(jù)轉(zhuǎn)換機制。

        (四)異常處理模型

        處理異常情況是應(yīng)用程序中非常重要的方面,合理劃分異常層次既對程序的執(zhí)行有利,還為程序調(diào)試提供了依據(jù)。然而,不應(yīng)暴露給客戶異常信號,將責(zé)任推給客戶。基于架構(gòu)的角度,需要通用框架提供出某種可行的機制:保證產(chǎn)生代碼混亂的幾率最小,還應(yīng)充分捕捉到異常信息中的診斷信號(一般地,這種情況需設(shè)計專門的層次,例如,設(shè)計專門用于業(yè)務(wù)邏輯服務(wù)的ServiceException類,用于數(shù)據(jù)存取的DaoAccessException類等等),保證原始異常信息的完整性。

        (五)輔助工具庫

        通常地,應(yīng)用系統(tǒng)中會有一些同業(yè)務(wù)邏輯關(guān)系不密切的需求,包括對字符串處理的需求;對顯示日期格式的需求;文件處理的需求等等,為避免常用需求代碼的隨意散布,需要一個公用的且易擴展的工具庫。

        四、結(jié)束語

        J2EE作為一種流行的企業(yè)級應(yīng)用系統(tǒng)開發(fā)平臺,為開發(fā)人員提供了強大的技術(shù)支持和開發(fā)平臺。利用目前應(yīng)用比較廣泛的開源J2EE開發(fā)框架,把J2EE各個層次上的開發(fā)框架通過集成,建設(shè)成一個通用的J2EE開發(fā)底層平臺,使得能夠在此基礎(chǔ)上快速的開發(fā)具體的應(yīng)用系統(tǒng),使得項目開發(fā)工作順利高效的進(jìn)行。通過把SpringFramework,Hibernate,Tapestry這三個位于J2EE架構(gòu)不同層次上的開發(fā)框架集成到一起,發(fā)揮其各自獨特的優(yōu)勢,建設(shè)成一個通用的J2EE基礎(chǔ)平臺,并在此基礎(chǔ)上開發(fā)出具體的應(yīng)用項目。

        參考文獻(xiàn):

        [1](美)Rod Johnson, Juergen Hoeller(等著),蔣培(譯).Spring框架高級編程[M].北京:機械工業(yè)出版社,2007.1-27,85-160.

        [2]Rod Johnson.J2EE Development Frameworks.Computer Science 2005,1(38):102-115.

        中文字幕亚洲无线码在一区| 野花香社区在线视频观看播放| 欧美色欧美亚洲另类二区| 色妞色综合久久夜夜| 欧美日一本| 亚洲av熟女传媒国产一区二区| 在线观看老湿视频福利| 欧美激情a∨在线视频播放| 免费一级黄色大片久久久| 人妻被公上司喝醉在线中文字幕| av无码国产精品色午夜| 精品国产aⅴ无码一区二区| 麻豆密入视频在线观看| 国产精品后入内射日本在线观看| 久久国产成人精品av| 日日碰狠狠添天天爽超碰97| 91精品日本久久久久久牛牛| 精品一区二区三区国产av| 免费av一区二区三区无码| 高潮毛片无遮挡高清免费| bbbbbxxxxx欧美性| 中文字幕亚洲在线第一页| 轻点好疼好大好爽视频| 日韩毛片在线| 亚洲在线视频一区二区 | 夜夜高潮夜夜爽夜夜爱爱一区| 天堂草原电视剧在线观看图片高清| 国产免费人成视频在线播放播 | 亚洲伊人av天堂有码在线| 欧美黑人性暴力猛交喷水| 免费一本色道久久一区| 国产农村妇女毛片精品久久麻豆| 人妻激情偷乱视频一区二区三区| 精品国产v无码大片在线观看| 69搡老女人老妇女老熟妇| 亚洲国产中文字幕在线视频综合| 国产精品一区二区久久乐下载 | 激性欧美激情在线| 国产偷2018在线观看午夜| 国产在线观看一区二区三区av | 一区二区三区国产内射|