APP下载

基于SSH框架的高校餐费管理系统设计与实现

2015-05-30翟高粤

计算机时代 2015年5期

摘 要: 为提高高校餐费管理的效率,实现智能化管理,提出一种基于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应用配置部分代码-->

action

org.apache.struts.action.ActionServlet

action

*.do

<!—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