夏繼禹
摘要:該文運用了基于struts2、Spring、Hibernate 框架的相關理論和方法,根據(jù)縣鄉(xiāng)公路養(yǎng)護管理功能設計,應用J2EE技術和MVC設計模式,從表示層、業(yè)務層、數(shù)據(jù)層幾個方面,著重研究系統(tǒng)實現(xiàn)的技術方法和步驟。
關鍵詞:公路養(yǎng)護管理系統(tǒng);三層架構;J2EE平臺;SSH框架技術
中圖分類號: TP3? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)17-0097-02
開放科學(資源服務)標識碼(OSID):
縣鄉(xiāng)公路養(yǎng)護管理系統(tǒng)的開發(fā)語言主要是java,采用Oracle數(shù)據(jù)庫技術,在開源的MyEclipse集成開發(fā)環(huán)境下,選用比較穩(wěn)定、靈活的J2EE作為技術框架支撐的三層架構,基于Web開發(fā)技術的工程設計思想,結合MVC架構設計理念,整合開源框架Struts2、Spring、Hibernate(SSH)技術,實現(xiàn)一套數(shù)據(jù)與視圖相互隔離、互不影響的管理系統(tǒng)。
1 關鍵技術
1.1 開發(fā)環(huán)境
1)開發(fā)語言
Java語言面向接口編程,其Java2平臺的企業(yè)版J2EE,提供了多層次分布式的應用模型、組件再用、一致化的安全模型以及靈活的事務控制功能。其組件主要包括:客戶層組件、Web層組件、業(yè)務邏輯層組件和企業(yè)信息系統(tǒng)層軟件。各種組件、技術以及服務架構在標準和規(guī)格上達到一致,優(yōu)勢是利于高效開發(fā)、支持異構環(huán)境、可伸縮性強、穩(wěn)定性強、支持長期的可用性。
2)Oracle數(shù)據(jù)庫
本系統(tǒng)使用Oracle10g,通過Oracle數(shù)據(jù)庫技術能夠在縣鄉(xiāng)公路養(yǎng)護管理系統(tǒng)中全面地儲存、管理數(shù)據(jù)信息。Oracle數(shù)據(jù)庫技術非常適合于大型網(wǎng)絡的信息處理,無論是在聯(lián)機事務處理技術,傳統(tǒng)的關系型數(shù)據(jù)庫,或在分布式處理技術方面,其高性能、數(shù)據(jù)并行處理機制,數(shù)據(jù)安全措施都很完善。Oracle數(shù)據(jù)庫對縣鄉(xiāng)公路養(yǎng)護管理系統(tǒng)有以下優(yōu)勢:第一,支持上千個用戶的大量多媒體數(shù)據(jù)和大規(guī)模的事務處理,可以滿足用戶多、數(shù)據(jù)量大的工作負荷;第二,Oracle數(shù)據(jù)庫技術有較好的數(shù)據(jù)安全性、完整性檢查和一致性,系統(tǒng)對非法入侵的用戶進行嚴格的驗證機制及服務體系,對不同的用戶系統(tǒng)采用不同管理權限進行控制,以保障數(shù)據(jù)的絕對安全;第三,Oracle數(shù)據(jù)庫技術提供的數(shù)據(jù)庫操作接口,如接口軟件PRO系列,利于使用高級語言、應用程序及外部軟件完成對Oracle數(shù)據(jù)庫進行存取;第四,支持分布式數(shù)據(jù)處理,不同區(qū)域的硬件、信息資源可以通過計算機網(wǎng)絡系統(tǒng)實現(xiàn)共享[1],如網(wǎng)絡讀寫遠端數(shù)據(jù)庫的數(shù)據(jù),并有對稱復制技術。
1.2 MVC設計模式
程序設計應用MVC分層設計模式,可以有效地把應用程序的輸入、處理和輸出分開進行,通過MVC模式的模型(Model)、視圖(View)、控制器(Control)三層架構,分別擔負不同的任務,視圖層向用戶顯示相關數(shù)據(jù),并接受用戶的輸入信息;模型層呈現(xiàn)業(yè)務數(shù)據(jù)和業(yè)務處理,可為多個視圖提供數(shù)據(jù);控制器接受用戶的輸入并調用模型和視圖去完成用戶的需求。
1.3 實現(xiàn)MVC模式的框架技術
縣鄉(xiāng)公路養(yǎng)護管理系統(tǒng)采用Struts2+Spring+Hibernate(SSH)框架,架構的層次比較分明,邏輯清晰,代碼比較簡潔,可讀性好,移植性強。
1)Struts2框架
Struts2的基本組件有核心控制器FilterDispatcher、業(yè)務控制器Action和用戶實現(xiàn)的企業(yè)業(yè)務邏輯組件,包括Action、Actions、Config、Util、Taglib和Validator等。在項目中主要負責視圖層、控制層,在視圖層提供了大量的標簽庫,利于提高視圖層的開發(fā)速度。
2)Spring框架
Spring是一個全方位的整合框架,由AOP模塊、O/R映射模塊、Web Cibtext及Utility模塊、JDBC及DAO模塊、Application Context模塊、MVC框架、核心容器和支持工具七個模塊組成。Spring的作用是將Web層、Service層、DAO層及PO無縫連接整合,主要是在項目中對hibernate和struts進行整合,解決層與層之間的耦合問題。使用Spring框架,利于編寫更干凈、更可管理、并且更易于測試的代碼。
3)Hibernate框架
Hibernate提供共6個核心類和接口,包括Session、SessionFactory、Transaction、Query、Criteria和Configuration,不僅可以對持久化對象進行存取,而且能夠進行有效的事務控制,更改數(shù)據(jù)庫不需要更改代碼,可以自動生成SQL語句,自動執(zhí)行,實現(xiàn)對JDBC的進行輕量級封裝。利于使用對象編程思維來操縱數(shù)據(jù)庫,移植性好,支持各種數(shù)據(jù)庫,簡化數(shù)據(jù)訪問層煩瑣的重復性代碼,提高開發(fā)速度。
2 系統(tǒng)總體設計
2.1 系統(tǒng)功能
縣鄉(xiāng)公路養(yǎng)護管理系統(tǒng)由用戶管理模塊和業(yè)務管理模塊構成。功能主要包括:基礎業(yè)務信息管理、路橋養(yǎng)護計劃管理、日常維護管理、小修保養(yǎng)管理、路橋隧大中修管理、養(yǎng)護經(jīng)費管理。
2.2 系統(tǒng)三層架構
將系統(tǒng)劃分為數(shù)據(jù)層、業(yè)務層、表示層三層架構來設計。
1)數(shù)據(jù)層
該層提供數(shù)據(jù)集中服務,通過分布式數(shù)據(jù)存儲策略,全面負責對數(shù)據(jù)庫的操作,完成對數(shù)據(jù)表的增添、刪除、修改、查找和更新等功能操作。將多功能檢測車、公路能見度儀等前端感知設備采集的路面檢測數(shù)據(jù)、橋梁檢測數(shù)據(jù)、通道涵洞數(shù)據(jù)及各種病害檢測數(shù)據(jù),以及數(shù)字化的各類屬性數(shù)據(jù)和業(yè)務數(shù)據(jù)存放在數(shù)據(jù)庫系統(tǒng)中。
2)業(yè)務層
該層主要針對具體業(yè)務問題的操作,通過對數(shù)據(jù)層的操作以及數(shù)據(jù)業(yè)務邏輯的處理,實現(xiàn)各業(yè)務功能模塊的功能。任務主要集中在對業(yè)務規(guī)則制定、業(yè)務流程實現(xiàn)等與業(yè)務需求相關的系統(tǒng)設計上。包括:用戶權限管理、業(yè)務流程管理、業(yè)務基礎數(shù)據(jù)管理、路橋養(yǎng)護計劃管理、養(yǎng)護項目管理、日常巡查管理、小修保養(yǎng)、大中修項目管理、養(yǎng)護考核管理、安全生產(chǎn)管理、路橋監(jiān)控管理、應急搶險管理、路橋檢測信息管理、病害分析及預警、機械設備管理、可視化應用及移動終端管理等。
3)表示層
該層通過一種交互式操作的界面,為用戶顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù)。主要用戶單位是交通局、養(yǎng)護站(所)等。提供的服務是通過圖表查詢、決策分析、統(tǒng)計報表、多維分析、可視化展示等方式進行數(shù)據(jù)提取和展現(xiàn)。
在設計中,系統(tǒng)的三層架構與MVC三層架構的對應關系并不是一一對應的,他們的關系是控制器和視圖構成表現(xiàn)層,而模型又劃分為業(yè)務邏輯層和數(shù)據(jù)訪問層。
3 系統(tǒng)實現(xiàn)技術
3.1 系統(tǒng)框架關鍵配置
縣鄉(xiāng)公路管理系統(tǒng)由Struts2、Spring、Hibernate三個開源框架集成搭建的。關鍵配置包括數(shù)據(jù)庫連接、Hibernate持久化配置、Spring事務管理配置、Struts2中通過Spring管理Action,和與Action控制轉向的配置。
3.2 用戶管理模塊的實現(xiàn)
實現(xiàn)巡路、養(yǎng)護、驗收、管理人員四種權限的登錄和注冊功能。
實現(xiàn)登錄的步驟:1)提交表單信息,由Struts2過濾器攔截,
通過Struts.xml配置文件交給相應的Action執(zhí)行;2)在Action層驗證表單信息的合法性,驗證成功由Service層進行數(shù)據(jù)封裝處理轉交給Dao層;3)在Dao層執(zhí)行與數(shù)據(jù)庫的交互,驗證成功后再把登錄者的個人信息,由Dao層到Service層,再到Action層;4)由Action層對信息的判斷返回相應的Action的Result值,由配置文件Struts.xml找到相應的Jsp模板跳轉使用。
3.3 各業(yè)務管理模塊的實現(xiàn)
3.3.1 表示層的實現(xiàn)
該層基于struts2技術來實現(xiàn)MVC的架構模式,負責頁面數(shù)據(jù)提取,頁面動作響應。主要由JSP頁面、ActionForm、Action、Action Servlet和Struts.xml共同實現(xiàn)。
實現(xiàn)步驟:1)配置web.xml,由FilterDispatcher接收客戶端瀏覽器發(fā)出的HTTP請求;2)配置struts2.xml,找到要調用的Action類和方法,通過Ioc控制反轉方式,由Di將依賴的值注入給Aciton;3)處理業(yè)務邏輯由Action調用業(yè)務邏輯組件來進行,包含表單的驗證;4)根據(jù)Struts2.xml的配置找到對應的返回結果,并生成相應頁面;5)經(jīng)過過濾器向客戶端展示出響應的結果。
3.3.2 業(yè)務層的實現(xiàn)
業(yè)務層是系統(tǒng)平臺的重要功能模塊,由Spring框架支持,在程序中起承上啟下的作用。首先,在對業(yè)務對象建模的基礎上,構建每個功能模塊相應的管理類,從而管理和維護其業(yè)務邏輯;其次,按照功能模塊將Spring配置文件分開,可選用基于xml配置、基于注解配置或基于類配置的方式,將管理類對應Bean進行注冊配置,以實現(xiàn)使用AOP模式對事務進行控制。業(yè)務邏輯由一些會話Bean與實體Bean組成,采用EJB來實現(xiàn)模型,完成客戶端跟服務器端的讀寫等操作。
3.3.3 數(shù)據(jù)層的實現(xiàn)
用hibernate實現(xiàn)與oracle數(shù)據(jù)庫的連接,配置文件是xml格式,也可以是Java屬性文件格式。
實現(xiàn)步驟:1)先創(chuàng)建持久化類;2)創(chuàng)建Hibernate.cfg.xml配置文件;3)讀取并解析xml配置文件;4)讀取并解析映射信息;5)創(chuàng)建工廠類SessionFactory;6)打開Sesssion接口;7)創(chuàng)建事務JTATransation;8)persistent operate持久化操作;9)提交事務;10)關閉Session和SesstionFactory。
基于SSH框架技術能夠顯著地提高應用系統(tǒng)的開發(fā)效率,并能使應用系統(tǒng)有較高的復用性和可擴展性。但使用SSH連接Oracle數(shù)據(jù)庫的實現(xiàn)技術較為復雜,還需進一步研究和實踐。
參考文獻:
[1] 王鳴. 數(shù)字校園下高??蒲泄芾硇畔⑾到y(tǒng)的優(yōu)化[J]. 太原城市職業(yè)技術學院學報, 2013(5):137-139.
[2] 劉祺彬. 基于開源技術的MVC框架的構建[J]. 信息技術, 2013(8):125-129.
[3] 呂安濤等. 基于GIS的農(nóng)村公路養(yǎng)護管理系統(tǒng)設計與開發(fā)[J]. 山東交通科技, 2011(3):12-15.
[4] 黃鳳苗. 農(nóng)村公路養(yǎng)護管理信息系統(tǒng)的設計研究[J]. 交通世界, 2015(3):32-33.
[5] 李興華, 王月清. Java Web開發(fā)實戰(zhàn)經(jīng)典[M]. 北京: 清華大學出版社, 2010.
[6] 李剛. struts2權威指南[M]. 北京: 電子工業(yè)出版社, 2007.
【通聯(lián)編輯:張薇】