摘要:開發(fā)基于SPRING+HIBERNATE框架的設(shè)備信息管理系統(tǒng),它能為設(shè)備監(jiān)控發(fā)生提供重要的參考,為企業(yè)管理和資源有效配置提供重要的手段。通過Spring-Hibernate的各個組件在項目開發(fā)中的實際應(yīng)用,對該項目各個功能模塊需求分析,系統(tǒng)分析設(shè)計,部署實現(xiàn)及測試等全過程的分析。
關(guān)鍵詞:SPRING+HIBERNATE
0 引言
系統(tǒng)建設(shè)的目標是通過建立一個設(shè)備信息管理平臺及時更新設(shè)備信息,及時掌握各種設(shè)備信息,提高設(shè)備利用率。
1 系統(tǒng)功能
1.1 用戶管理:用戶管理:全面管理所有登陸用戶的賬號和密碼,提供管理員重設(shè)密碼功能,提供增加、刪除、修改用戶信息的功能。
1.2 權(quán)限管理:基于角色的權(quán)限管理方式,劃分不同角色(一般賬戶、管理員權(quán)限),對角色設(shè)置每個功能模塊的使用權(quán)限,將用戶賦予相應(yīng)的角色。
1.3 日志管理:詳細記錄用戶登陸情況和所做的操作,以備查看。系統(tǒng)會記錄每一位登錄系統(tǒng)的用戶的時間,以及操作.系統(tǒng)會自動統(tǒng)計每個用戶的登錄次數(shù).也可以查看詳細的操作日志記錄。由于記錄比較詳細,可能在數(shù)據(jù)量方面比較龐大,使得用戶在使用時能夠更加的方便,所以在此處添加一個小型的查詢功能,提供圍繞用戶和時間的查詢。
1.4 查詢統(tǒng)計:查詢在庫設(shè)備、已借出及歸還設(shè)備、設(shè)備損壞情況、設(shè)備詳情、費用統(tǒng)計月、季、年報表。
1.5 設(shè)備管理:
①設(shè)備類別管理:將設(shè)備類別以代碼的形式錄入系統(tǒng),以實現(xiàn)設(shè)備的分類管理。類別可分多級,大級別類型包括若干小類別。
②設(shè)備維護管理:將所有需要管理的設(shè)備按不同類別、不同的設(shè)備號錄入系統(tǒng),生成設(shè)備數(shù)據(jù)庫。
2 系統(tǒng)技術(shù)體系
業(yè)務(wù)應(yīng)用平臺基于基礎(chǔ)應(yīng)用平臺開發(fā),采用標準的JAVA B/S結(jié)構(gòu)軟件設(shè)計實現(xiàn)模式,按照如下的標準四層結(jié)構(gòu)進行開發(fā)實現(xiàn):
2.1 UI層也是展示層主要由JSP語言編碼。JSP頁面負責(zé)獲取HTTP的請求參數(shù),對于一些簡單的業(yè)務(wù)邏輯,直接處理,并生成HTTP文檔。對于大多數(shù)的業(yè)務(wù)請求,則轉(zhuǎn)發(fā)控制器,并負責(zé)展示最終結(jié)果。該項目多個JSP里嵌套JSF,使用DWR控件,導(dǎo)航條全部用標記庫實現(xiàn)。
2.2 MVC架構(gòu)由Spring框架實現(xiàn)。MVC的核心思想是將應(yīng)用分為模型(MODEL)、視圖(VIEW)和控制器(CONTROLLER)三部分。模型(業(yè)務(wù)邏輯層)是指應(yīng)用程序的數(shù)據(jù),以及對這些數(shù)據(jù)的操作;視圖(展示層)是指用戶界面;控制器(控制層)負責(zé)用戶界面和程序數(shù)據(jù)之間的同步,Spring作為一種輕量級的MVC框架基本可滿足中小應(yīng)用需求。此外,BeanFactory 使用控制反轉(zhuǎn)(IOC)模式將應(yīng)用程序的配置和依賴性規(guī)范與實際的應(yīng)用程序代碼分開。
2.3 數(shù)據(jù)持久層由Hibernate3.1實現(xiàn)。Hibernate具有很大的靈活性,但同時它的體系結(jié)構(gòu)比較復(fù)雜,提供了好幾種不同的運行方式。Hibernate不僅負責(zé)從Java類到數(shù)據(jù)庫表的映射(還包括從Java數(shù)據(jù)類型到SQL數(shù)據(jù)類型的映射),還提供了面向?qū)ο蟮臄?shù)據(jù)查詢檢索機制,從而極大地縮短了手動處理SQL和JDBC上的開發(fā)時間。
①配置Hibernate和事務(wù),applicationContext-hibernate.xml中配置Hibernate的sessionFactory、Transaction manager等,applicationContext-resources.xml配置dataSource。
②創(chuàng)建hbm文檔,hbm是用來定義持久數(shù)據(jù)和在需要時保存關(guān)于對象的持久域、關(guān)聯(lián)、子類和代理的XML文檔。例如地址信息的映射:
③建立業(yè)務(wù)層和DAO之間的依賴關(guān)系,生成DAO類。
2.4 主動域?qū)ο竽J剑荘OJO的一種形式,在實現(xiàn)中封裝了關(guān)系數(shù)據(jù)模型和訪問細節(jié)。其中過程域?qū)ο笸耆撠?zé)業(yè)務(wù)邏輯,程序結(jié)構(gòu)清晰,相對比之前流行的EJB簡單易用。
3 結(jié)論和展望
基于MVC架構(gòu)的項目開發(fā),首先需要有一個很好的整體規(guī)劃,整個系統(tǒng)中包括哪幾個模塊,每個模塊各需要多少FormBean和ActionBean等,而且最好有專人負責(zé)xml的管理,開發(fā)基于Spring+hibernate的項目的難點在于配置管理。
在實際應(yīng)用中,我們感到View很難脫離使用的Object的數(shù)據(jù)結(jié)構(gòu)而獨立存在。為回避此類問題,我們在JSP中大量使用自定義標志或者其它Javabean。通過這些為每個頁面定制了規(guī)范的Form樣式和頁面導(dǎo)航。但這里taglib的過度使用無疑使頁面的美工和靈活性受到了損失,風(fēng)格的統(tǒng)一也造成了某些功能的受限,DWR的使用也對程序的解耦性也有一定影響。
限于人力、技術(shù)等因素制約,程序沿用了過去的編譯環(huán)境,如APPFUSE的使用,實際上現(xiàn)有的IDE工具已能充分替代。系統(tǒng)實現(xiàn)的功能也是有限的,未來還有大量的研究和應(yīng)用工作要做。