Spring框架下IoC容器的在线考试系统设计

2015-12-07 02:52田丽华孙颖馨王金甫
关键词:容器组件框架

田丽华,孙颖馨,王金甫

(长春理工大学光电信息学院,长春 130031)

1 在线考试系统开发必要性

随着网络技术发展的成熟,开发基于Web技术的在线考试系统,可根据各种不同角色用户的需求对其进行功能和权限的划分,从而在整个考试的过程中实施相应的控制权限。该系统为各类用户提供了一个既方便又灵活的跨平台操作环境以及相应的实用管理功能,最终实现整个考试过程完全透明化、自动化和规范化[1-11]。在线考试系统实现了无纸化,同时使考试公平、公正、公开,节约了阅卷的人力、物力支出,进而节省了整个考试环节的总支出费用[1]。

2 在线考试系统分类

在线考试系统主要分为:单机版考试系统、客户机/服务器(C/S)模式考试系统、基于浏览器/服务器(B/S)模式的在线考试系统。

采用基于B/S架构的在线考试系统具有以下独特的优点:首先,该系统无需额外安装客户端程序,只需利用计算机上安装的浏览器等必备软件即可;其次,由于不需单独安装客户端程序,因此系统维护和管理更为方便;再次,基于B/S的系统突破了时间和空间的限制,能同时支持不同的考场和分布在不同地理位置的大批量的考生在同一时间进行考试。

3 考试系统模块

根据用户的不同,考试系统包括的模块(子系统)有考场管理模块、用户管理模块、题库管理模块、组卷模块、在线考试模块、阅卷模块和成绩查询与试卷统计分析模块。这七大模块的使用对象分别为系统管理员、教师和学生,如图1所示[3]。

图1 系统功能模块

3.1 系统管理员控制模块

系统管理员对使用该系统的不同用户进行各种权限设置和管理;对在线考试考场进行各种管理,包括考试名称、考试科目和参加考试人员的设置;监控考试各个环节,解决考试过程中的突发情况(例如学生登录信息异常、中途掉线等)。系统管理员可根据某科主讲教师的考试方案和试题源进行科目管理,组成考试卷库。

3.2 教师控制管理

教师在管理员的授权下可导入自己考试科目的试题源,审阅试题格式及对内容进行修改。教师也可查阅考试成绩及进行试卷分析。

3.3 学生使用模块

学生输入自己的准考证号和姓名进入考试页面,答题完毕点击交卷按钮。

4 基于Spring框架的在线考试系统设计

4.1 使用Spring的优点

①IoC实现了java bean的低耦合性,便于java code的重用;②aop使用简便;③ 实现了restful的mvc,便于Web开发;④ 大量的注解pojo简化了xml配置;⑤data base的DAO模板类兼容多种数据库,且底层只需要更换jdbc driver,通过data source声明驱动,jdbc template就可实现对数据库的访问;⑥Spring官网提供了很多解决方案(安全、数据访问、页面流、android)。综上,Spring可很好地实现系统的低耦合高聚合,便于代码的重用,且面向接口的编程可以让API的访问无需知道底层如何实现。

4.2 将请求转入Spring容器中

本文设计的系统中的Action实例由Spring的IoC容器负责管理。因此,必须使Action Servelet将请求转发给Spring容器的Bean。为了实现这个目标,Spring提供了一个Delegation Request Processor类,这个类是Struts提供的Request Processor类的扩展。使用Delegation Request Processor可以在处理用户请求转发时将请求转发给Spring容器中的Bean。

本文设计的系统有严格的分层。系统分为表现层、MVC控制器层、业务逻辑层、DAO层和数据持久层。一旦进入了Spring IoC容器的内部,IoC容器负责创建系统所需的控制器,每次用户请求到达时,IoC容器都会重新创建一个新的控制器组件。本系统中的控制器组件、业务逻辑组件和DAO组件都处于Spring容器的管理下,各组件之间以松耦合的方式组织在一起,通过Spring的IoC机制管理各组件之间的依赖关系。系统分层模型的协作图如图2所示。

图2 系统分层模型的协作图

4.3 实现Hibernate持久层

Spring框架的IoC容器可以管理Session Factory。Session Factory必须建立在数据源之上,Spring的IoC容器可以将数据源Bean注入Session Factory Bean中。Session Factory的主要配置代码如下:

4.4 实现DAO层

1)Spring框架下的DAO模式。引入Spring框架后,Spring的IoC容器负责创建DAO接口实现类的实例,并将DAO组件的实例注入业务逻辑组件,避免了业务逻辑组件主动寻找DAO工厂,也可防止业务逻辑组件与DAO工厂耦合。Spring为Hibernate提供的DAO支持类是Hibernate Dao Support,该类可以极大方便DAO组件的实现。

2)管理持久层连接。Spring框架的IoC容器可以将Session Factory直接注入到DAO组件中,避免DAO组件手动访问Session Factory的繁琐性。在本文系统中,只要将Session Factory配置在Spring容器中,Spring容器就负责创建和维护Session Factory实例,并将它注入其他需要持久化访问的组件中(如图3所示),继而实现试题DAO组件、管理DAO组件等。

图3 IoC容器将Session Factory注入DAO组件

5 结束语

在本文的系统设计中Spring充当了整个应用的工厂,Spring的IoC容器成为整个应用的核心。系统中的所有组件,从控制器、业务逻辑组件到DAO组件都直接处于Spring IoC容器的管理下。各组件之间的依赖也是由Spring的IoC容器提供管理。

在线考试系统可以完全实现无纸化、网络化、自动化的计算机在线考试,对教育单位的信息化建设具有深远的现实意义和实用价值。

[1]王建.基于Web的在线考试系统设计与实现[J].软件导刊,2014,13(1):70-71.

[2]冷建华,易战军.基于B/S架构的在线考试系统的设计[J].科技视界,2012(31):69-70,83.

[3]杨勋.基于Web的在线考试系统的设计与实现[J].计算机时代,2012(10):20-23.

[4]宁佐勇.浅谈基于B/S架构的在线考试系统分析与设计[J].软件开发,2013(6):10-11.

[5]张志峰,徐鹏.基于B/S结构的高职院校在线考试系统设计与实现[J].lT 与网络,2012(10):91.

[6]朱静.基于WEB的在线考试系统的设计与实现[J].福建电脑,2012(10):127-128.

[7]周昌权.基于Web的在线考试与练习系统设计[J].电脑编程技巧与维护,2012(18):80-81.

[8]李建.基于Web多层框架体系的智能化组卷考试系统设计与开发[J].科技广场,2012(10):50-51.

[9]陈建方,俞曼华,孔强,等.基于WEB技术的自动组卷方案设计[J].电脑与信息技术,2012,20(4):11-12,32.

[10]张瑞,董卓亚.基于Web开发的在线考试系统[J].电脑知识与技术,2012,8(16):3878-3880.

[11]何广文,王耀民,曾华.基于题库共享的在线考试系统设计与实现[J].软件导刊,2012,11(6):70-71.

[12]张永恒.基于SSH架构的无纸化考试在线考试系统的设计与实现[J].榆林学院学报,2012,22(4):61-62.

[13]黄磊,刁勇,李明建,等.煤矿防突信息管理系统设计[J].西南大学学报:自然科学版,2013(2):148-154.

[14]宋志刚,姚波.基于J2EE在线考试信息系统的架构[J].中国新技术新产品,2010(1):30.

[15]王聪.基于B/S模式的在线考试系统的设计探讨[J].电脑科技,2010(3):112-113.

[16]李俊青.JavaEE Web开发与项目实战[M].武汉:华中科技大学出版社,2011.

[17]软件开发技术联盟.Java Web开发实战[M].北京:清华大学出版社,2014.

猜你喜欢
容器组件框架
无人机智能巡检在光伏电站组件诊断中的应用
容器倒置后压力压强如何变
框架
广义框架的不相交性
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
难以置信的事情
关于原点对称的不规则Gabor框架的构造
取米
风起新一代光伏组件膜层:SSG纳米自清洁膜层