鄭俊海
(廣東省財政職業(yè)技術(shù)學(xué)校,廣東 廣州 510445)
隨著計算機技術(shù)和校園信息化的發(fā)展,職業(yè)院校對固定資產(chǎn)信息化管理的要求也越來越高。職業(yè)院校每年都會增加大量的教學(xué)儀器設(shè)備和辦公設(shè)備,與此同時各種設(shè)備的管理難度也越來越大,使得固定資產(chǎn)各種數(shù)據(jù)不能及時匯總統(tǒng)計,也不能對固定資產(chǎn)進行動態(tài)管理。為了提高職業(yè)院校固定資產(chǎn)的管理效率,需要開發(fā)一個高效可靠、擴展性強的信息管理系統(tǒng)。
本系統(tǒng)使用ExtJS與SSH2架構(gòu)設(shè)計,ExtJS主要用于創(chuàng)建前端用戶界面,是一個與后臺技術(shù)無關(guān)的前端A jax框架。SSH2架構(gòu)是基于Struts2+Spring+Hibernate的一個集成框架,是目前較流行的一種Web應(yīng)用程序開源框架。該架構(gòu)設(shè)計主要分為五層:表示層、控制層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和實體層。
ExtJS是一個用Javascript編寫的A jax框架,用于在客戶端創(chuàng)建豐富多彩的Web應(yīng)用程序界面,并且與后臺技術(shù)無關(guān)。利用ExtJS構(gòu)建的RIAWeb應(yīng)用具有與桌面程序一樣的標準用戶界面和操作方式,并且能夠跨不同的瀏覽器平臺使用。ExtJS已經(jīng)成為開發(fā)具有完美用戶體驗的Web應(yīng)用的選擇[1]。ExtJS為用戶提供功能強大的組件,同時大量使用了JSON對象實現(xiàn)功能封裝,這樣就大幅減少了代碼量,減輕了維護的強度,提高了程序的可用性和維護性。
Struts2是一個基于MVC設(shè)計模式的Web應(yīng)用框架,MVC設(shè)計模式由模型(Model),視圖(View)和控制器(Controller)三部分組成。Struts2將應(yīng)用分層,實現(xiàn)功能模塊和顯示模塊的分離,Struts2使用控制器(Controller)來建立模型與視圖的數(shù)據(jù)交互,提高了應(yīng)用系統(tǒng)的可維護性,可擴展性和可移植性。
Spring為開發(fā)者提供的是一個一站式的輕量級應(yīng)用開發(fā)框架,在Java EE的應(yīng)用開發(fā)中,支持POJO和使用Java-Bean的開發(fā)方式,使應(yīng)用面向接口開發(fā),充分支持OO(面向?qū)ο螅┑脑O(shè)計方法。Spring技術(shù)通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進了松耦合[2]。與此同時Spring還提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)進行內(nèi)聚性的開發(fā)。
Hibernate是一個開放源代碼的對象關(guān)系映射框架,是Java應(yīng)用和關(guān)系數(shù)據(jù)庫之間的橋梁,負責(zé)Java對象和關(guān)系數(shù)據(jù)之間的映射。它對JDBC訪問數(shù)據(jù)庫的代碼做了封裝,向上層應(yīng)用提供了面向?qū)ο蟮臄?shù)據(jù)訪問API,同時支持各種數(shù)據(jù)庫。Hibernate簡化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼,移植性好,能夠完成數(shù)據(jù)持久化的重任,不僅可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,是一個輕量級框架。
本系統(tǒng)主要功能包括登錄模塊,職工信息管理模塊,資產(chǎn)信息管理模塊,資產(chǎn)分析模塊和日志管理模塊共五部分。登錄模塊主要功能是管理員和職工進行登錄使用;職工信息管理功能主要是添加職工信息,修改職工信息,刪除職工信息和職工權(quán)限設(shè)置功能;資產(chǎn)信息管理模塊主要功能是資產(chǎn)入庫,資產(chǎn)調(diào)換申請,資產(chǎn)報修申請,資產(chǎn)報廢申請,資產(chǎn)審批和資產(chǎn)的折舊管理;資產(chǎn)分析模塊主要功能是資產(chǎn)查詢和資產(chǎn)分析功能,根據(jù)不同的情況查詢資產(chǎn)信息和對資產(chǎn)進行分析和統(tǒng)計。日志管理模塊主要功能是對操作日志瀏覽、備份和刪除功能等。主要系統(tǒng)功能結(jié)構(gòu)如圖1:
圖1 系統(tǒng)功能結(jié)構(gòu)圖
本系統(tǒng)的JSP頁面,例如增加職工信息頁面、資產(chǎn)入庫頁面等,使用ExtJS技術(shù)進行開發(fā)。在工程項目的WebRoot目錄下新建extjs文件夾,復(fù)制bootstrap.js、ext-all-dev.js、ext-alldebug.js、ext-all.js、resources到文件夾中,再在extjs文件夾下新建locale文件夾,將ext-lang-zh_CN.js復(fù)制到里面,最后在JSP頁面中引入ExtJS相關(guān)基礎(chǔ)包。部分代碼如下:
控制層的實現(xiàn)采用Struts2框架的控制器,通過Struts.xm l配置文件配置前臺頁面與后臺服務(wù)器交互Action,在Struts.xm l中需要為相應(yīng)的Action定義一個type為JSON的result。然后在Action的操作方法中根據(jù)請求調(diào)用業(yè)務(wù)邏輯處理類得到執(zhí)行結(jié)果對象后,將結(jié)果轉(zhuǎn)換為JSON格式,接著調(diào)用jsonObject.toString()方法向HttpServletResponse里寫JSON格式內(nèi)容,并附帶成功success或失敗failure標識,視圖層即JSP頁面根據(jù)控制層返回的標識進行相應(yīng)的操作。部分代碼如下所示:
業(yè)務(wù)邏輯層的實現(xiàn)通過對DAO組件的調(diào)用和封裝,完成業(yè)務(wù)邏輯層的操作。首先編寫Service業(yè)務(wù)邏輯接口,定義系統(tǒng)所要完成的業(yè)務(wù)邏輯方法;然后編寫先前定義的業(yè)務(wù)邏輯接口的實現(xiàn)類?,F(xiàn)以職工管理模塊為例,編寫業(yè)務(wù)邏輯層接口EmployeeService.java定義對實體類Employee.java增刪查改4種操作,然后編寫業(yè)務(wù)邏輯層實現(xiàn)類EmployeeImpl.java,最后在實現(xiàn)類中調(diào)用數(shù)據(jù)持久層類的方法實現(xiàn)接口中定義的增刪查改4種業(yè)務(wù)操作。部分代碼如下所示:
數(shù)據(jù)持久層主要使用Hibernate來實現(xiàn)數(shù)據(jù)庫表到Java實體類的映射,完成與數(shù)據(jù)庫之間的交互。本系統(tǒng)在實現(xiàn)數(shù)據(jù)持久層時先創(chuàng)建Hibernate映射文件和持久化類,然后在applicationContext.xm l文件中進行基礎(chǔ)組件的配置,包括對數(shù)據(jù)源dataSource配置,指向的類為DBCP的數(shù)據(jù)源類;對SessionFactory配置,為DAO層提供Hibernate的數(shù)據(jù)庫連接對象,并注入已配置的dataSource對象;對事務(wù)的配置,為SessionFactory對象增加事務(wù)配置給組件,并注入已配置的SessionFactory對象;接著配置DAO組件和DAO事務(wù);最后編寫DAO類和編寫業(yè)務(wù)層實現(xiàn),調(diào)用DAO層類代碼進行數(shù)據(jù)庫的交互。如employee(職工信息)表:{職工號,職工名稱,密碼,權(quán)限}={employeeId,employeeName,pw d,perm ission},映射文件employee.hbm.xm l的部分代碼如下所示:
本文采用基于ExtJS與SSH2框架設(shè)計實現(xiàn)了職業(yè)院校固定資產(chǎn)信息管理系統(tǒng),ExtJS框架實現(xiàn)了系統(tǒng)操作界面的友好性,SSH2框架很好地實現(xiàn)了視圖層、控制層和業(yè)務(wù)邏輯層的分離,提高了系統(tǒng)開發(fā)的效率,也使系統(tǒng)具有較強的穩(wěn)定性、可擴展性和可維護性。通過實際運行,系統(tǒng)表現(xiàn)良好,運行穩(wěn)定。