• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      陳小健,宋承繼

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

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

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

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

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

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

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

      系統(tǒng)采用模塊化設計,確保了系統(tǒng)的可擴展性,整個系統(tǒng)模塊結(jié)構(gòu)如圖1所示。辦公桌面模塊主要實現(xiàn)系統(tǒng)的日常辦公輔助;項目管理模塊主要實現(xiàn)項目信息檢索、項目年檢、項目結(jié)題、項目申報活動;成果管理模塊主要實現(xiàn)對科研活動產(chǎ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)框架設計

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

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

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

      2 系統(tǒng)設計

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

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

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

      2.2 業(yè)務層設計

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

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

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

      2.3 表示層設計

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

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

      系統(tǒng)實現(xiàn)平臺服務器操作系統(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應用程序,并能簡化了集成Struts框架、Spring框架、Hibernate框架難度,應用服務器平臺使用Tomcat 6.0,Tomcat是一款支持開源、免費、功能強大且運行可靠的Java應用服務器,用于構(gòu)建中小型、多層和分布式的WEB應用。

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

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

      創(chuàng)建與表對應的POJO實現(xiàn)類,每個類就是一個具有Getter/Setter風格的 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ù)庫表的字段關系。

      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è)務層實現(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)用父類方法時,有時也需要作適當?shù)倪壿嬇袛?,下邊列出一個數(shù)據(jù)持久的基本實現(xiàn)。

      2)管理 DAO組件

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

      3.4 表示層實現(xiàn)

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

      將Struts動作委托給Spring,以獲得更好的動作管理??梢岳肧pring的一個擴展點,使用擴展的RequestProcessor替換Struts的RequestProcessor。完成這個設置后,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)相應的邏輯處理后,調(diào)用業(yè)務方法完成相應的業(yè)務要求。FormBean定義如下:

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

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

      4 結(jié)束語

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

      [1]袁華強,王亞強,朱君.利用J2EE輕量級框架構(gòu)建Web應用研究[J].計算機工程與設計,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)濟,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)的教學支持系統(tǒng)設計與實現(xiàn)[J].計算機工程與設計,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].上海:華東師范大學,2009.

      [5]鄧璐娟,孫義坤,刁海港,等.基于Struts+Spring+Hibernate的學生成績管理系統(tǒng)的設計與實現(xiàn) [J].鄭州輕工業(yè)學院學報:自然科學版,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)的設計與實現(xiàn)[J].微型計算機與應用,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.

      猜你喜歡
      表示層組件邏輯
      刑事印證證明準確達成的邏輯反思
      法律方法(2022年2期)2022-10-20 06:44:24
      無人機智能巡檢在光伏電站組件診斷中的應用
      能源工程(2022年2期)2022-05-23 13:51:50
      邏輯
      創(chuàng)新的邏輯
      新型碎邊剪刀盤組件
      重型機械(2020年2期)2020-07-24 08:16:16
      U盾外殼組件注塑模具設計
      基于Spring的企業(yè)級Web項目架構(gòu)設計研究
      軟件(2019年6期)2019-10-08 06:27:21
      女人買買買的神邏輯
      37°女人(2017年11期)2017-11-14 20:27:40
      ASP.NET三層構(gòu)架解析
      基于SSH框架科研管理系統(tǒng)的設計
      左贡县| 麻栗坡县| 吉木乃县| 全南县| 饶河县| 祁连县| 天峨县| 西吉县| 邵武市| 诸城市| 保康县| 彝良县| 台湾省| 高青县| 同仁县| 调兵山市| 连云港市| 天镇县| 治多县| 舟山市| 古蔺县| 城市| 福建省| 广元市| 景谷| 克山县| 夹江县| 舟曲县| 二连浩特市| 越西县| 双峰县| 理塘县| 靖边县| 精河县| 沧源| 兴山县| 宽城| 达孜县| 北安市| 延寿县| 女性|