基于SSI框架的考勤系统的设计与实现
2015-04-07田晓娜赵晴
田晓娜++赵晴
摘 要:为了满足企业对考勤系统的可移植性、可维护性的需求,采用基于MVC模式的SSI框架,设计并实现一套考勤系统。利用MVC模式对系统进行简单有效的分层式设计,使得系统的结构清晰,功能完善,同时SSI框架提供的丰富功能能够简化开发过程,降低系统代码耦合度,提高了代码的复用性。实践证明,SSI框架提高了开发效率和系统的可维护性,同时增强了系统的可扩展性。
关键词:考勤系统;SSI框架;MVC模式;iBATIS
中图分类号:TP319 文献标识码:A 文章编号:2095-1302(2015)02-00-02
0 引 言
随着互联网的发展,基于互联网多平台共享的Java语言的优势越来越突出,建立在这种跨平台理念的Java Web服务基础上的各种应用也在互联网应用中脱颖而出。通过使用基于MVC模式的Struts2技术、Spring技术和iBATIS技术,将这三种比较成熟的技术有机结合起来构建SSI技术架构,可以实现关注点的分离,层内的高内聚和层间的松耦合。使整个系统具备良好的稳定性、可维护性和可扩展性[1]。
考勤系统是一个能够实现考勤管理的智能化管理系统,能够使工作人员在岗位上的工作状态得到及时的反馈,提高考勤管理的效率。但是,目前考勤系统普遍存在扩展性不高、可移植性差、后期维护困难、代码繁琐等问题,已经不能满足现代企业发展的需求。因此,设计并实现了一套基于SSI框架的考勤系统。系统基于B/S结构,采用myeclipse平台进行开发,降低了维护成本,提高了软件的开发效率。
1 SSI框架概述
SSI框架就是Struts2框架、Spring框架和iBATIS框架的整合。Struts2框架负责表现层,完成页面显示、响应用户请求等功能;Spring主要负责业务逻辑层,完成应用系统的业务逻辑与事务逻辑等功能;IBTIS主要负责数据持久化,完成于数据层的交互功能[2]。SSI框架的架构如图1所示。
1.1 Struts2框架
Struts2是使用JSP和Servlet来开发Web层的应用框架,它是MVC设计模式的一种实现方式。它以WebWork为核心,采用了拦截器机制来处理用户的请求,从而使业务逻辑与Servlet API完全脱离[3]。
Struts2分为视图、模型、控制器三个部分。视图主要由JSP建立。Struts2自身包含一组标签库,灵活运用可以提高开发效率。Struts2中的模型由一系列的Bean来实现,框架本身提供一种FormBean在模型和视图之间保存数据,也可以自己定义业务逻辑Bean。Struts2中的控制器主要是它自身提供的ActionServlet,其核心就是strus2-config.xml配置文件。ActionServlet通过配置文件中的定义将控制转移到Action类当中。
图1 SSI框架架构
1.2 Spring框架
Spring是业务层框架,可以很好地连接表示层和持久层。它使用控制反转(IoC)模式将应用程序的配置和依赖性规范与实际应用程序代码分开。通过配置管理特性,Spring AOP模块直接将面向对象的编程功能集成到了Spring框架中[4]。它对不同的数据访问技术提供了统一的接口。
1.3 iBATIS框架
iBATIS是一个基于Java的持久层框架。包括SQL Maps和Data Access Object(DAO)。它是一种“半自动化”的ORM实现。开发人员需要编写具体的SQL语句,通过映射配置文件,可以将SQL所需要的参数和返回的结果字段映射到指定的POJO上。SQL Maps组件可以让开发人员在不使用JDBC API以及不耦合Java代码与SQL语句的情况下实现Java对象和关系型DBMS系统的读写操作[5]。同时,iBATIS允许开发者在项目后期的修改过程中很方便地对数据库表进行新的设计或者修改,使系统具有更强的扩展性和维护性。
2 基于SSI框架的考勤系统的设计与实现
2.1 系统架构模式
MVC是模型(Model)-视图(View)-控制器(Controller)的缩写,也就是说软件开发的三层设计模式,降系统分为系统表现层、业务逻辑层和数据持久层,强制性地将应用程序的输入、处理和输出分开,形成独立的单元模块,各自处理自己的任务[6]。
基于SSI框架的考勤系统的MVC体系结构如图2所示。
图2 基于SSI框架的考勤系统的MVC体系结构
2.2 系统功能模块
充分考虑考勤系统的需求,系统设计功能主要四个模块:系统管理、基础数据、登记审批和查询统计。系统管理主要实现管理员对员工、部门、年假、权限等信息的管理。基础数据主要实现对工作日和非工作日的设置,以及考勤数据的导入功能。登记审批主要实现员工补签、请假等考勤的登记,以及领导对登记的审批。查询统计实现了对包括出勤、缺勤、请假、迟到早退等考勤的统计,以及个人对自己考勤历史数据的查询。考勤系统功能结构图如图3所示。
图3 考勤系统功能结构图
2.3 考勤系统的实现
(1)系统表现层
系统表现层就是系统页面,为了给用户提供友好的系统操作界面,所以采用JSP页面实现。系统表现层可以让用户在系统中输入数据,并提供数据验证功能[7]。本层主要包含的是*.jsp文件。
(2)业务逻辑层
业务逻辑层包含各模块功能实现的详细代码。用于执行业务流程和制定数据的业务规则,实现系统的完整性。它为表现层提供业务处理服务[8]。首先,实现系统的基础对象类Model的开发;其次,实现各业务模块的功能接口DAO层以及对应的实现层(DAO Impl);然后,实现Struts Action类的设计,用以接收JSP页面的请求,并根据接收到的请求调用相应的业务组件;最后,根据业务逻辑处理类Service层调用DAO接口完成于数据持久层的操作[9]。以登陆为例,Struts.xml代码如下:
(3)数据持久层
数据持久层是对DAO接口的具体实现。由DAO接口中的实现类形成的XML文件、DAO接口的实现类和iBATIS配置文件组成[10]。数据持久层负责业务逻辑层与数据库之间的通信,提供数据的存取服务。DaoImpl实现Dao接口,SQL语句在XML类中,并配置到SqlMap-Config.xml文件中。从而实现对数据库的操作。
3 结 语
基于SSI框架,通过对考勤系统进行详细设计,完成了考勤系统的功能开发,成功地将SSI框架的思想应用于考勤系统的研究开发,证明了SSI框架在降低代码耦合度,增加代码在健壮性、可重用性等方面的优势。
参考文献
[1]孙强,孙龙清,邱小彬.基于Struts+Spring+iBATIS的轻量级Web应用框架研究[J].计算机应用于软件,2008,25(10):135-137.
[2]刘京华.Java Web整合开发王者归来[M].北京:清华大学出版社,2010.
[3] Kurniawan B.深入浅出Struts2[M].杨涛,译.北京:人民邮电出版社,2009.
[4]计文柯.Spring技术内幕:深入解析Spring架构与设计原理[M].北京:机械工业出版社,2012.
[5]银强.iBATIS在java中的应用[J].价值工程,2010(33):160.
[6]刘斌.Java Web 整合开发(JSP+AJAX+Struts+Hibernate)[M].2版.北京:电子工业出版社,2006.
[7]冯润民.基于SSH的高校学生管理系统设计与实现[J].计算机工程,2009,35(6):280-282.
[8]杨生举,施韶亭,牛振明,等.基于Struts+Spring+iBATIS复合框架的科技计划项目管理系统研究与实现[J].计算机应用与软件,2010,27(11):111-113.
[9]罗国涛.新型框架Struts2.0+Spring2.0+IBatis在MIS系统中的应用[J].软件导刊,2009,8(4):35-37.
[10]万云,刘电霆,邓立华.基于iBATIS持久层扩展缓存的分析及实现[J].软件导刊,2010(5):19-21.