基于轻量级Java EE 架构的教师考核系统的设计与实现
2011-05-08宋成明李彦军
宋成明,李彦军
(山西大学商务学院 信 息工程学院,太原 0 30031)
教师考核是各大院校管理工作的重要组成部分。现有考核方法的缺点是[1]:教师必须回忆本学年在教学、科研等各方面工作的完成情况,手工填写各项内容。并计算出工作量标时、综合记分等,这项工作十分繁琐且容易出错,各部门的审核难度大,消耗大量的人力,难以实现部门之间的信息共享与沟通。
采用轻量级框架技术,可以快速构建教师考核系统[2]。使得对教师教学科研等各项工作的量化考核方便快捷。教师在客户端可随时输入自己已经完成的工作数据(如:发表的论文题目,作者排名,出版物),由系统按学校的考核办法自动计算出应该获得的考核积分。
1 轻量级的Java EE 框架
轻量级Java EE软件架构主要由主流的开源框架Struts2、Spring、Hibernate根据其各自的应用特性进行整合而成,选择以Spring框架为核心并整合Struts2和Hibernate的框架组合。
1.1 Struts2框架
Struts2是实现了MVC模式的框架,Struts2将一个Web系统的程序分为模型、视图和控制器3个部分。模型由JavaBean、EJB等组件构成;视图由JSP文件、POJO对象组成;控制器由Action来实现。
1.2 Spring框架
Spring 框架是一个开源且基于POJO 的轻量级J2EE 应用框架,它是为了解决企业应用程序开发复杂性而创建的。Spring是一个以依赖注入(DI)原则和面向方面编程思想(AOP)为基础的轻量级框架。
1.3 Hibernate3技术
Hibernate本质上是一个面向Java开发环境的O/R数据库映射工具。借助于Hibernate的O/R技术,可以非常轻松地将以面向对象思想封装对象的各个状态映射到基于SQL的关系模型数据结构中去。
2 教师考核系统设计与实现
2.1 功能分析
根据系统应用功能需求,将教师考核系统设计为成果管理、人员管理、院系考核、考核管理、报告管理和系统管理模块,通过这6个功能模块,达到系统的要求。
(1)成果管理:各项教学科研成果的录入,科研处对成果进行审核、评定。
(2)人员管理:对本院系教职工信息管理。
(3)院系考核:院系考核组人员查看本院系教职工的考核信息,并对隶属于该院系的教职工进行院系内考核,形成初步考核结果。
(4)考核管理:包括制定与修正考核细则、发布考核事项。其中,学校考核组成员可对院系考核结果进行审核,形成最终考核结果。
(5)报表管理:包括人员考核信息报表、成果统计报表、院系考核结果报表、学校审核报表。
(6)系统管理:包括院系机构管理、系统用户组管理、基础数据管理。
2.2 系统总体架构设计
本系统基于Java EE 平台开发,采用MyEclipse6.0 为开发工具、SQL Server为数据库系统、Tomcat 为Web 服务器。参照了Java EE 分层设计模型,将整个系统设计分为持久、业务逻辑层和表现层[3]。这种分层方式使整个系统变得更加清晰,切入点的分离使得每个部分的责任独立,层与层通过接口的方式通信,这也遵循了针对接口编程的原则。教师考核系统架构如图1。
图1 教师考核系统软件架构图
教师考核系统软件架构平台中采用了如下的整合策略:
(1)Struts2中的Action和数据逻辑层的数据操作bean交由Spring容器来管理,在Struts2中采用伪Action来替代真实的Action,真实的Action位于Spring容器中。
(2)层与层之间通过DTO进行数据传输。
(3)业务逻辑bean与数据访问bean中的POJO对象由Spring注入。
(4)数据访问bean仅针对POJO对象操作,而POJO对象与数据库中数据的映射、数据的关系逻辑及数据的持久化工作由Hibernate来实现。
2.3 持久层的设计与实现
持久层的目标是为系统提供一个统一、安全、并发性良好的数据持久化机制。它能有效降低业务层和数据层的耦合程度,使得开发者更加专注于构建业务模型和实现业务层的业务逻辑。本系统采用Hibernate作为持久层的ORM 框架,并且使用数据访问对象(DAO)模式。部分代码如下:
2.4 业务逻辑层的设计与实现
在业务逻辑层,我们使用了Spring框架,它不仅可以很方便地组织业务逻辑,还可以在事务管理、AOP等很多层面上发挥作用。在本系统中,采用setter依赖注入的方式,利用IOC容器,可通过XML的方式很容易地组织bean。
我们在业务层主要完成下面2 项工作。
2.4.1 在applicationContext.xml中配置事务
为了避免在业务逻辑层中重复编写大量的事务处理代码。我们在教师考核系统中,把事务管理定义在transactionManager配置上,这样开发人员只须关注业务逻辑,而将事务管理完全交给配置文件,这样做的好处是既节约开发时间又可以提高开发效率。配置文件applicationContext的部分配置如下:
2.4.2 结合Spring 和Hibernate
利用Spring 和Hibernate的整合,使得业务逻辑层仅需要通过持久层来访问底层数据。而且,由于使用了IOC,业务层不需要自己成生DAO,仅需要声明DAO类型。DAO的具体实现类型在Spring的XML文件中配置,这样就更加有效地降低了业务层和持久层的耦合。任何组件都可以最大程度地得到重用。当我们开发一个业务逻辑组件时只需要使用setter 方法进行依赖注入,便可轻松实现组件间的引用。
2.5 表现层的流程设计与实现
2.5.1 表现层的流程设计
基于Struts2 MVC 的表现层架构模型如图2。
图2 基于Struts2 MVC 的表现层架构模型
图2 描述了Struts2架构中的模型、视图和控制器。
(1)从图2中可以看出客户端提交一个(Http-ServletRequest)请求,请求先后被提交到一系列(主要是3层)的过滤器,如ActionContext-CleanUp、其他过滤器(SiteMesh等)、 Filter-Dispatcher。
(2)FilterDispatcher是控制器的核心,就是MVC的Struts2实现中控制层(Controller)的核心。
(3)FilterDispatcher判断ActionMapper是否需要调用某个Action来处理这个(HttpServlet Request)请求。
(4)一旦Action执行完毕,根据struts.xml 中的配置,转到对应的结果视图。
MVC 模式把应用分为输入、处理、输出3部分,从而减弱了Action控制类和业务逻辑接口之间的耦合。
2.5.2 表现层的实现
限于篇幅,这里只给出与添加考核细则页面相关的QualifyItemAction 类的部分实现:
public String createQualifyItem () {
qualifyItemBLO.create(item);
return SUCCESS;// 添加成功!
}
从以上代码可以看出,表现层中的数据表示是Action类的中对象属性,表现层与业务逻辑层进行通信时使用POJO 进行。
3 结束语
教师考核信息化是学校信息化进程的战略步骤之一,其质量对以后的信息整合工作有着较大影响。本系统集成Struts、Spring和Hibernate 3种框架技术,快速实现了一个B/S结构的教师考核系统。简化了系统的开发、管理与维护,提高了开发速度,有利于系统的集成和扩展。
[1]秦 锋. 基于Web技术的教师考核系统的实现[J]. 安徽工业大学学报,2003,20(3):119-223.
[2]杨兴春,谯 石,董 文,等. 基于轻量级J2EE构架的高校教务管理系统的设计与实现[J]. 计算机系统应用,2007(3):42-43.
[3]Spring Framework Organization. The Spring Framework -Reference Documentation version 2.5[EB/OL]. 2008-10-31.http://static.springsource.org/spring/docs/2.5.x/reference/index.html
[4]张 俐,张维玺. 基于JavaEE的固定资产管理系统的设计与实现[J].计算机工程与设计,2009,30(16).