国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SSH框架高??蒲泄芾硐到y(tǒng)的研究與實現(xiàn)

2011-10-09 09:45:10陳小健宋承繼
電子設(shè)計工程 2011年16期
關(guān)鍵詞:表示層組件邏輯

陳小健,宋承繼

(陜西工業(yè)職業(yè)技術(shù)學(xué)院 陜西 咸陽 712000)

高校科研管理系統(tǒng)是高??蒲泄芾砉ぷ鞯幕A(chǔ)平臺,它能夠?qū)蒲泄ぷ鳟a(chǎn)生的各類信息進(jìn)行有效管理和對科研活動的全程跟蹤。由于科研管理內(nèi)容的廣泛性,管理內(nèi)容的具體化進(jìn)一步加深,對高??蒲泄芾硐到y(tǒng)開發(fā)的易維護(hù)性、安全性和擴展性等提出更高要求。使用SSH框架建立一個易于動態(tài)擴展、易于維護(hù)、易于控制,具有伸縮性的高校科研管理系統(tǒng)是一個非常合適的開發(fā)選擇。

Struts架構(gòu)實現(xiàn)了MVC設(shè)計模式,使代碼結(jié)構(gòu)化、條理化、便于維護(hù),很好地實現(xiàn)了業(yè)務(wù)邏輯與用戶界面的分離,將模型和視圖從底層事務(wù)處理分割開來[1]。它提供了大量自定義標(biāo)記庫,可以在JSP頁面中分離顯示邏輯與靜態(tài)HTML,使頁面代碼更清晰,可讀性提高,從而簡化J2EE的Web應(yīng)用開發(fā)。但是,Struts框架主要是針對表示層設(shè)計的,對于邏輯層支持不是很強,并且ActionForms使用不便、無法進(jìn)行單元測試。

Spring框架是一個松耦合的框架,框架的部分耦合度被設(shè)計為最小,成為企業(yè)級應(yīng)用程序一站式的解決方案。同時,它也是模塊化的框架,允許開發(fā)人員使用其中一部分的模塊進(jìn)行開發(fā)[2]。比如:開發(fā)者可以使用Bean容器加之Web層的Struts框架進(jìn)行工作,也可以只使用Hibernate集成框架或JDBC抽象層進(jìn)行工作。Hibernate框架只提供模型部分支持,如僅僅采用Hibernate架構(gòu)開發(fā)應(yīng)用系統(tǒng),系統(tǒng)只會在業(yè)務(wù)模型部分有所改善,但是系統(tǒng)的邏輯處理、流程控制與視圖并沒有得到有效分離,因此系統(tǒng)的耦合性還是太高,不易于維護(hù)。

如果將以上三種框架進(jìn)行有效整合,采用分層設(shè)計思想,并為各層次的支持提供一個整合框架,以隔離各層次間的依賴性,便于系統(tǒng)的擴展,使框架更加易用。

1 系統(tǒng)的功能與結(jié)構(gòu)

1.1 系統(tǒng)功能設(shè)計

系統(tǒng)采用模塊化設(shè)計,確保了系統(tǒng)的可擴展性,整個系統(tǒng)模塊結(jié)構(gòu)如圖1所示。辦公桌面模塊主要實現(xiàn)系統(tǒng)的日常辦公輔助;項目管理模塊主要實現(xiàn)項目信息檢索、項目年檢、項目結(jié)題、項目申報活動;成果管理模塊主要實現(xiàn)對科研活動產(chǎn)生的論文、專著、專利及相關(guān)鑒定證書進(jìn)行統(tǒng)計和分析;人員管理模塊主要實現(xiàn)對科研人員信息的管理和賬戶管理;系統(tǒng)管理模塊主要實現(xiàn)系統(tǒng)運行日志和人員權(quán)限的管理。

圖1 系統(tǒng)框架圖Fig.1 Block diagram of system

1.2 系統(tǒng)框架設(shè)計

SSH組合框架的設(shè)計目標(biāo)是:提供設(shè)計層次更加清晰,功能更加完善的Web框架;提高組件的可復(fù)用性,降低各層之間的耦合度,有利于系統(tǒng)的可維護(hù)和可擴展等。SSH組合框架三層分別是:用戶表示層,邏輯業(yè)務(wù)層,數(shù)據(jù)持久層。每個層在軟件功能結(jié)構(gòu)中都有明確的責(zé)任,在功能上保持獨立性,它們之間通過接口可以實現(xiàn)。SSH組合框架組合示意圖如圖2所示。

圖2 SSH組合框架組合圖Fig.2 Picture of SSH combinative framework

整個SSH框架的工作流程以J2EE架構(gòu)為基礎(chǔ),表示層由Struts完成,提供豐富的標(biāo)記庫,管理用戶的請求并做出相應(yīng)的響應(yīng),提供一個控制器,調(diào)用相應(yīng)的業(yè)務(wù)邏輯;而通過Spring框架同Struts框架的完美結(jié)合,事務(wù)管理和依賴注入能力主要應(yīng)用在業(yè)務(wù)邏輯層;在數(shù)據(jù)持久層方面主要采用Hibernate,實現(xiàn)O/R Mapping,對JDBC進(jìn)行了輕量級的對象封裝,建立Java對象模型的持久對象[3]。

2 系統(tǒng)設(shè)計

2.1 數(shù)據(jù)持久層設(shè)計

數(shù)據(jù)持久層主要定義應(yīng)用程序通過具體的類與數(shù)據(jù)庫交互。持久層的設(shè)計將使用Facade模式(門面模式)定義系統(tǒng)中各個模塊的業(yè)務(wù)入口MenuDAO、BaseDataDAO、BaseDataTypeDAO、UserDAO接口,并定義它的實現(xiàn)類Impl,通過接口得到具體業(yè)務(wù)的DAO實現(xiàn)。通過DAO和對應(yīng)模塊的公共信息類HibernateUtil,就能對數(shù)據(jù)庫進(jìn)行增刪查改動作,如圖3所示。

圖3 持久層類圖Fig.3 Picture of data persistence layer class

2.2 業(yè)務(wù)層設(shè)計

為了實現(xiàn)系統(tǒng)各層架構(gòu)圖,業(yè)務(wù)層的設(shè)計將定義各個模塊對表示層的統(tǒng)一接口lmp,同時定義lmp接口的實現(xiàn)類Service。由于整個項目業(yè)務(wù)層設(shè)計較多,這里我們僅對系統(tǒng)維護(hù)模塊的業(yè)務(wù)層設(shè)計進(jìn)行介紹。該模塊定義了接口Menu-Servicelmpl、BaseDataServicelmpl、BaseDataTypeServicelmpl、AuthViewServicelmpl,及其它的實現(xiàn)類 MenuService、BaseData-Service、BaseDataTypeService、AuthViewService, 圖 4 描述該模塊的類的靜態(tài)結(jié)構(gòu)及其類之間的關(guān)系。

圖4 業(yè)務(wù)層類圖Fig.4 Picture of business layer class

資源模塊的BaseService都定義了相關(guān)的操作,包括:Query、Delete、Insert 等 。 同 時 定 義 MenuService、BaseData-Service、BaseDataTypeService、AuthViewService 接 口 將繼承 域?qū)ο蠓椒ǎ?最后通過 MenuServicelmpl、BaseDataServicelmpl、BaseDataTypeServicelmpl、AuthViewServicelmpl 實 現(xiàn) 各 個 接口,完成業(yè)務(wù)層的服務(wù)支持。

2.3 表示層設(shè)計

系統(tǒng)表示層負(fù)責(zé)管理用戶的請求和響應(yīng),并提供一個控制器將調(diào)用委托到業(yè)務(wù)邏輯和其他上游處理;將來自于其他層的例處理到Struts Action中;組裝在視圖中表現(xiàn)的模型對象。在對表示層的設(shè)計中,我們主要對Form的類框圖和Action的類框圖進(jìn)行設(shè)計,如圖5所示。

圖5 表示層類圖Fig.5 Picture of presentation layer class

由于BaseAction封裝了控制層公共的信息,所有的Action類都通過繼承BaseAction類,其他的Action類就不用考慮公共信息。LoginAction使用了 LoginForm,BaseDataQueryAction使 用 BaseDataQueryForm,InitAction使用InitForm,而3個Form都繼承ActionForm組件對象,它們實現(xiàn)了對客戶端的表單數(shù)據(jù)的良好封裝和支持。在項目實施中,也可以使用動態(tài)FormBean(DynaActionForm)對表單數(shù)據(jù)封裝。

3 系統(tǒng)實現(xiàn)

由于科研管理系統(tǒng)模塊較多,各模塊實現(xiàn)采用統(tǒng)一架構(gòu)方式,文中通過用該架構(gòu)來實現(xiàn)用戶登錄模塊介紹該架構(gòu)的實現(xiàn)細(xì)節(jié)。

3.1 系統(tǒng)實現(xiàn)平臺

系統(tǒng)實現(xiàn)平臺服務(wù)器操作系統(tǒng)采用Windows2003 Server版,客戶機操作系統(tǒng)可采用Windows 2000/XP系列和IE6.0版本以上的瀏覽器,數(shù)據(jù)庫系統(tǒng)采用Oracle 9i企業(yè)版,開發(fā)工具采用MyEclipse6.5+JDK1.6開發(fā)。MyEclipse6.5是穩(wěn)定且功能強大的IDE開發(fā)工具,它提供了可視化的集成開發(fā)環(huán)境,支持最新的JDK版本,可以方便的開發(fā)Java應(yīng)用程序,并能簡化了集成Struts框架、Spring框架、Hibernate框架難度,應(yīng)用服務(wù)器平臺使用Tomcat 6.0,Tomcat是一款支持開源、免費、功能強大且運行可靠的Java應(yīng)用服務(wù)器,用于構(gòu)建中小型、多層和分布式的WEB應(yīng)用。

3.2 數(shù)據(jù)持久層實現(xiàn)

1)實現(xiàn)POJO實現(xiàn)類

創(chuàng)建與表對應(yīng)的POJO實現(xiàn)類,每個類就是一個具有Getter/Setter風(fēng)格的 JavaBean。跟其它Bean不同的是,POJO實現(xiàn)類必須實現(xiàn)Serializable(序列化)接口,只有實現(xiàn)Serializable接口,POJO實現(xiàn)類才能持久化。

2)映射Hibernate持久化類

前面已經(jīng)定義了POJO實現(xiàn)類,但POJO實現(xiàn)類還不能提供數(shù)據(jù)庫訪問支持。通過Hibernate映射文件的映射,Hibernate框架可以將面向?qū)ο蟮牟僮鬓D(zhuǎn)換成對數(shù)據(jù)庫表的操作。我們通過User.hbm.xml配置文件來映射User的屬性和數(shù)據(jù)庫表的字段關(guān)系。

3)建立 Hibernate配置

配置Hibernate的內(nèi)容包括配置數(shù)據(jù)庫、配置連接池和配置JDBC參數(shù)。Hibernate是JDBC的一個輕量級封裝,底層還是JDBC來實現(xiàn)數(shù)據(jù)庫訪問,所以配置文件中還包括JDBC的配置。配置文件中重要的部分是映射文件,映射文件的作用是將值對象與數(shù)據(jù)庫數(shù)據(jù)相綁定。hibernate.cfg.xml文件配置如下代碼:

3.3 業(yè)務(wù)層實現(xiàn)

1)實現(xiàn) UserDAO組件

要實現(xiàn)對數(shù)據(jù)庫的操作,必須在具體的DAO中調(diào)用具體的操作, 比如 update,save,delete,query等。 由于所有的DAO都繼承HibernateDaoSupport類,可以直接調(diào)用父類的方法,來實現(xiàn)對數(shù)據(jù)庫的操作。在調(diào)用父類方法時,有時也需要作適當(dāng)?shù)倪壿嬇袛啵逻吜谐鲆粋€數(shù)據(jù)持久的基本實現(xiàn)。

2)管理 DAO組件

通過整合Spring框架,借助于SpringIoC容器的支持,Ioc容器充當(dāng)DAO工廠,并讓IoC容器將DAO組件注入業(yè)務(wù)邏輯組件,從而提供更好的解耦。為了讓IoC容器能管理DAO組件,必須將所有的DAO組件配置在Spring的配置文件中,配置DAO組件比較簡單,只需要為其注入SessionFactory實例即可。下面是DAO組件配置文件applicationContext.xml的部分代碼:

3.4 表示層實現(xiàn)

1)控制層的實現(xiàn)

將Struts動作委托給Spring,以獲得更好的動作管理??梢岳肧pring的一個擴展點,使用擴展的RequestProcessor替換Struts的RequestProcessor。完成這個設(shè)置后,Struts會將截獲到的用戶請求轉(zhuǎn)發(fā)到Spring Context下的bean,根據(jù)bean的name屬性來匹配,Struts-config.xml的配置見如下代碼:

2)模型層的實現(xiàn)

系統(tǒng)開發(fā)中使用動態(tài)FormBean(DynaActionForm)作為模型的實現(xiàn)。FormBean的產(chǎn)生是要提供數(shù)據(jù)給Action,在Action中可以取得FormBean中封裝的數(shù)據(jù),經(jīng)相應(yīng)的邏輯處理后,調(diào)用業(yè)務(wù)方法完成相應(yīng)的業(yè)務(wù)要求。FormBean定義如下:

3)視圖層的實現(xiàn)

在視圖層采用Struts提供的Tiles標(biāo)簽來創(chuàng)建Web頁面,使得網(wǎng)頁的布局和內(nèi)容分離。其定義在文件tiles-def.xml中,見如下代碼:

4 結(jié)束語

隨著科研管理對象的跨領(lǐng)域擴展,管理業(yè)務(wù)規(guī)則的復(fù)雜化和具體化,用戶對軟件系統(tǒng)的可擴展性、可維護(hù)性、系統(tǒng)安全性等提出更高的要求。SSH框架在科研管理系統(tǒng)開發(fā)中的應(yīng)用研究不僅可以為系統(tǒng)提供非常優(yōu)秀的體系結(jié)構(gòu),還可以極大提高系統(tǒng)的安全性,提高系統(tǒng)的開發(fā)效率,縮短項目的開發(fā)周期,降低項目開發(fā)風(fēng)險,節(jié)約項目開發(fā)成本,提高產(chǎn)品的交付質(zhì)量。同時,隨著Struts、Spring、Hibernate框架的不斷更新,基于SSH組合框架的研究是一個長期性的課題,將多種框架有效整合,取長補短,應(yīng)用到實際的項目開發(fā)中,從而能夠極大提高項目的開發(fā)效率和產(chǎn)品的質(zhì)量,已經(jīng)成為軟件企業(yè)積極探索的重點。

[1]袁華強,王亞強,朱君.利用J2EE輕量級框架構(gòu)建Web應(yīng)用研究[J].計算機工程與設(shè)計,2007,28(3):22-23.

YUAN Hu-qiang,WANG Ya-qiang,ZHU Jun.J2EE lightweight framework construct web applications[J].Computer Engineering and Design,2007,28(3):22-23.

[2]李向東.基于SSH框架的項目申報系統(tǒng)的研究與實現(xiàn)[J].科技情報開發(fā)與經(jīng)濟(jì),2008,18(24):149-150.

LI Xiang-dong.The research and implementation of project application system based on SSH framework[J].Sci-Tech Information Development&Economy,2008,18(24):149-150.

[3]郭廣軍,謝棟,陳利品.基于SSH整合架構(gòu)的教學(xué)支持系統(tǒng)設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,2009,30(13):3111-3116.

GUO Guang-jun,XIE Dong,CHEN Li-ping.Design and implementation of teaching support system based on Struts-Spring-Hibernate integration architecture[J]. Computer Engineering and Design,2009,30(13):3111-3116.

[4]宋承繼.基于SSH框架的人事勞資管理系統(tǒng)的研究與實現(xiàn)[D].上海:華東師范大學(xué),2009.

[5]鄧璐娟,孫義坤,刁海港,等.基于Struts+Spring+Hibernate的學(xué)生成績管理系統(tǒng)的設(shè)計與實現(xiàn) [J].鄭州輕工業(yè)學(xué)院學(xué)報:自然科學(xué)版,2010,26(6):33-16.

DENG Lu-juan,SUN Yi-kun,DIAO Hai-gang,et al.Design and implement of student score management system based on Struts+Spring+Hiberante[J].Journal of Zhengzhou University of Light Industry:Natural Science,2010,26(6):33-16.

[6]沙先軍,王愛平,魏博誠.基于SSH的渠道管理系統(tǒng)的設(shè)計與實現(xiàn)[J].微型計算機與應(yīng)用,2011,30(4):89-92.

SHA Xian-jun,WANG Ai-ping,WEI Bo-cheng.Design and implementation of ssh-based channel management information system[J].Microcomputer&Its Applications,2011,30 (4):89-92.

猜你喜歡
表示層組件邏輯
刑事印證證明準(zhǔn)確達(dá)成的邏輯反思
法律方法(2022年2期)2022-10-20 06:44:24
無人機智能巡檢在光伏電站組件診斷中的應(yīng)用
能源工程(2022年2期)2022-05-23 13:51:50
邏輯
創(chuàng)新的邏輯
新型碎邊剪刀盤組件
重型機械(2020年2期)2020-07-24 08:16:16
U盾外殼組件注塑模具設(shè)計
基于Spring的企業(yè)級Web項目架構(gòu)設(shè)計研究
軟件(2019年6期)2019-10-08 06:27:21
女人買買買的神邏輯
37°女人(2017年11期)2017-11-14 20:27:40
ASP.NET三層構(gòu)架解析
基于SSH框架科研管理系統(tǒng)的設(shè)計
柳林县| 龙山县| 洛宁县| 定南县| 宁海县| 沁水县| 邛崃市| 调兵山市| 门头沟区| 鄱阳县| 双流县| 佛教| 焉耆| 竹溪县| 广平县| 池州市| 上饶县| 民权县| 信丰县| 惠安县| 井研县| 巴青县| 乐昌市| 德兴市| 承德县| 耿马| 若羌县| 剑河县| 天门市| 教育| 崇仁县| 哈密市| 武冈市| 策勒县| 右玉县| 灵璧县| 咸丰县| 阳西县| 永兴县| 龙泉市| 营口市|