

摘 要: 為提高高校餐費管理的效率,實現智能化管理,提出一種基于SSH框架的餐費管理解決方案。介紹了系統的總體框架、業務流程和主要功能模塊的設計,對系統開發中的關鍵技術SSH框架進行了研究,并實現了軟件的研制。實踐證明,采用SSH框架設計模式,可以將系統進行很好的分工,使系統層次結構更加清晰,降低模塊之間耦合性,簡化編程,提高軟件開發效率,同時提高系統的性能和可維護性。
關鍵詞: Struts; 餐費管理; Hibernate; Spring; SSH; MVC
中圖分類號:TP311 文獻標志碼:A 文章編號:1006-8228(2015)05-47-03
Abstract: In order to improve the efficiency of the catering management, this paper puts forward a solution for college catering management based on SSH framework. The overall framework of the system, business processes, and the design of the main functional modules are introduced, the key technology of SSH framework in the development of the system is studied. Practice has proved that using the SSH framework design mode, can be a good division of the system, make the hierarchical structure of the system more clear, reduce the coupling between modules, simplify programming, improve the efficiency of software development, improve the performance of the system and maintainability at the same time.
Key words: Struts; catering expense management; Hibernate; Spring; SSH; MVC
0 引言
近年來高校大力擴招,這給高校的管理帶來了很大考驗,學生的就餐就是一個不小的問題。傳統的餐費管理大多采用人工管理,效率低,已經不能滿足當前的需求。針對這個問題,本文通過SSH(Struts+Hibernate+Spring)框架技術,開發一個基于MVC的高校餐費管理系統,使餐費管理實現智能化管理。實踐證明,該系統的投入使用,大大提高了管理水平和效率。
1 SSH框架介紹
1.1 Struts
Struts是一個基于Java的MVC(Model-View-Controller)框架,主要是采用Servlet和JSP技術來實現[1],該框架主要由三部分組成。
模型(Model):是一個Action類,通過它來實現商業邏輯,用戶請求通過struts-config.xml文件描述的配置信息實現控制器(Controller)向Action的轉發。
視圖(View):View是由與控制器Servlet配合工作的一整套JSP定制標簽庫構成,利用它們可以快速建立應用系統的界面。
控制器(Controller):本質是Servlet,主要功能是將客戶端請求轉發到相應的Action類。
1.2 Spring
Spring是輕量級的Java EE應用程序框架。Spring的核心是實現了IoC(控制反轉)模式和AOP(面向切面編程)的容器,Spring的目標是實現一個全方位的整合框架,實現多個子框架的組合,提供一站式的框架整合方案[2]。
1.3 Hibernate
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了輕量級的對象封裝,使得Java程序員可以使用對象編程思維來操縱數據庫,完成數據的持久化[3]。
總的來說,傳統的Java EE采用EJB(企業Java Bean)為核心,以應用服務器為運行環境,開發和運行的成本較高。由Struts+Spring+Hibernate構成的SSH框架是Java EE的一個輕量級框架,它具備Java EE規范的種種特征,具有良好的面向對象建模的思維方式、優秀的應用分層及良好的可擴展性和可維護性,目前已經成為Java EE的一種更廣泛的開發規范。SSH集成框架與技術結構如圖1所示[4]。
2 系統設計與實現
2.1 系統功能
系統主要實現用戶信息導入、在線刷卡、賬戶查詢、賬戶充值和賬戶管理等相關功能。功能模塊構成如圖2所示。
⑴ 用戶信息導入:通過后臺管理批量導入學生基本信息,如學號、姓名、初始密碼等信息。
⑵ 在線刷卡:用戶在就餐消費時刷卡,系統讀出用戶的賬戶余額,如果余額充足,將從賬戶余額中減去本次就餐的費用,并顯示本次就餐發生費用和用戶賬戶余額。
⑶ 賬戶查詢:查詢用戶就餐費用的歷史記錄以及余額的情況。
⑷ 賬戶充值:管理員收到學生的餐費后對用戶的賬戶進行充值,即把收到的餐費與學生賬戶的余額進行累加。
⑸ 用戶賬戶管理:可以對學生賬戶進行刪除和修改。
2.2 系統架構設計
本系統采用的是四層B/S結構,包括表示層、業務邏輯層、數據訪問層和數據層。
表示層主要采用Struts構架,實現MVC模型中的視圖和控制部分。
業務邏輯層主要使用Spring框架實現。Spring框架使用依賴注入的方式,使業務邏輯組件在運行期被注入到容器中,利用Spring框架的AOP功能,從面向方面更好地降低系統中各個組件之間的耦合性[5]。另外,Spring的事務管理功能在在線刷卡模塊也得到很好的應用。
數據訪問層使用Hibernate框架實現。在該層主要完成實體“對象-關系”映射的建立,通過這個映射訪問業務對象,即可實現對數據庫的訪問,使得開發中不必再用SQL語句編寫復雜的數據庫訪問程序,簡化了對數據庫的訪問,提高了開發效率[6]。
數據層主要是數據庫,本系統中使用MySql數據庫。
2.3 具體實現分析
因篇幅限制,以下僅從眾多模塊中選擇賬戶充值模塊來說明SSH架構開發的具體流程。
2.3.1 利用Struts框架建立視圖和控制器
⑴ 建立視圖
在MVC模式中,視圖負責顯示從模型中采集的數據,也負責用戶輸入的數據和請求的傳遞,并將這些數據和請求傳遞給控制器和模型,在Struts框架中,視圖部分主要包括JSP頁面和ActionForm[7]。JSP頁面用來顯示模型中的數據,收集用戶輸入的數據以及提交用戶的請求。ActionForm的實質是實體JavaBean,在Struts中專門用來傳遞表單數據。
下面是賬戶充值JSP頁面、ActionForm和控制器的部分關鍵代碼:
<!—賬戶充值JSP代碼-->
AccountFunding” method=”post”>
<!—賬戶充值ActionForm代碼-->
⑵ 建立控制器
控制器的功能是將客戶端請求轉發到相應的Action類[8],控制部分包括配置文件web.xml、struts-config.xml和相應的Action類。下面是控制器的部分關鍵代碼:
<!—web.xml Struts應用配置部分代碼-->
<!—struts-config.xml 配置部分代碼-->
name=”accountFundingForm” type =”com.szjm.action.accountFundingAction” parameter=”method”> …
上述代碼顯示,在struts-config.xml文件中定義了一個元素,用來處理賬戶充值的請求,通過賬戶充值的JSP頁面的“accountFunding.do?method=AccountFunding”這樣的請求,就可以由AccountFundingAction來處理該請求,并將處理結果返回。
2.3.2 建立模型
SSH中的模型包括可重復利用的實體JavaBean、系統的業務邏輯以及對數據庫的訪問方法。建立的模型最終通過Spring依賴注入的方式,在運行期被注入到容器中等待調用。
⑴ 實體JavaBean類
本系統實體主要由學生賬戶類(Account.java)、學生類(Student.java)和管理員類(Manager.java)構成。
Account類:表示業務中的學生賬戶。
Student類:表示業務中的學生。
Manager類:表示業務中的管理員。
以上實體類均可以通過Hibernate DAO(數據訪問對象)對它們的操作來實現對數據庫中相應表的操作。
⑵ 建立業務邏輯類
業務邏輯類主要完成應用中所需要的一些業務方法,有業務邏輯接口和相應的實現類構成。本系統的業務邏輯接口有兩個,即IStudentService和IManagerService,分別對應了與學生相關的業務邏輯以及餐費管理員相關的業務邏輯。與業務邏輯接口對應,系統中定義了實現這兩個業務邏輯接口的實現類,即StudentServiceImpl和ManagerServiceImpl類。
⑶ 建立DAO類
DAO類主要完成對數據庫的訪問,可以借助Hibernate來實現。傳統對數據庫的訪問是通過JDBC來完成,但是,使用JDBC訪問數據,SQL語句比較復雜且難以理解,重復代碼較多,而使用Hibernate可以解決這些問題。Hibernate通過訪問對象的方法來實現對數據庫的訪問,在訪問中使用HQL語句來訪問對象,使程序和開發變得簡單。下面簡單介紹建立DAO類的步驟。
① 建立“對象-關系”映射文件
在餐費管理系統中,根據業務實體和數據庫中的表,需要建立如下三個“對象-關系”映射文件。
Account.hbm.xml:表示Account對象和account表之間的對象-關系映射文件。
Student.hbm.xml:表示Student對象和student表之間的對象-關系映射文件。
Manager.hbm.xml:表示Manager對象和manager表之間的對象-關系映射文件。
對象-關系映射文件建立后,在進行數據訪問時就可通過訪問業務實體對象來訪問數據庫。
② 建立DAO類
系統中DAO類可通過Hibernate Synchronizer工具自動生成,包括StudentDAO、AccountDAO和ManagerDAO類,這三個類都分別實現了接口IStudentDAO、IAccountDAO和IManagerDAO。這些DAO類主要是實現對數據庫查找、保存、更新和刪除等功能。
2.3.3 使用Spring裝配組件
前面介紹的Action類、Service類和DAO類,這些類在傳統的做法中,通常是在代碼中通過互相調用組織在一起,這樣做導致類之間的耦合度較高,一旦某些代碼發生了改變,就需要對各個耦合的程序進行重新編譯,維護的工作量很大。使用Spring來對它們進行管理,可以很好地解決這些問題。
⑴ Struts和Spring集成
通過Struts和Spring的集成,Struts中Action就可以被Spring進行管理,從而實現了在運行期對Action的依賴注入。Struts和Spring的集成可通過在Struts-config.xml中加入以下代碼實現。
<!—配置Spring插件-- >
.ContextLoaderPlugIn”> /WEB-INF/applicationContext.xml”>
⑵ 建立applicationContext.xml文件
applicationContext.xml是Spring的配置文件,該文件的主要功能是將Action類、Service類和DAO類進行裝配,實現數據源的配置、SessionFactory的創建(主要用來實現Hibernate的初始化)、事務管理和業務邏輯事務代理的配置等功能。
3 結論
本文通過一個具體實例的實現過程介紹了使用SSH框架進行開發的步驟和方法。實踐證明,采用SSH框架設計模式,可以將系統的設計進行很好的分工,使系統的層次結構更加清晰,降低模塊之間耦合性,簡化編程,提高軟件開發效率,同時提高系統的性能和維護性,在開發大型可復用、可擴展和可維護的Web應用系統開發中體現出了它的優勢。希望該方法可為剛開始學習SSH架構的軟件開發人員提供一定的參考。
參考文獻:
[1] 王美琴.基于J2EE的輕量級SSH架構整合研究[J].電腦知識與技術,2009.21:5718-5720
[2] 于湛麟,李仲秋,任永昌.SSH框架實現MVC架構的電子商務軟件平臺[J].計算機技術與發展,2012.10:169-172
[3] 王希望,孟祥書,王福順.基于SSH架構的Web系統的開發方法[J].河北農業大學學報:農林教育版,2010.4:538-541
[4] 翟高粵.SSH框架擴展與集成的研究[J].煤炭技術,2011.8:194-195
[5] 翟高粵.基于J2EE技術的SSH框架的改進及應用[J].計算機時代,2012.10:24-26
[6] 陶維.基于SSH多架構Web系統設計及其應用[J].科技和產業,2009.3:101-104
[7] 郭廣軍,朱昭君,王劍波.基于SSH架構的課程作業與成績管理系統[J].微電子學與計算機,2010.8:157-160
[8] 王斯瓊,牟永敏.Spring在SSH架構中的作用和不足[J].北京機械工業學院學報,2008.1:54-57