基于轻量级整合框架的电子校历系统
2015-12-17高瞻贾向炜李雪琴徐菲
高瞻 贾向炜 李雪琴 徐菲
摘要:该文通过对基于java 的三种框架Struts2,Spring和IBatis的研究,提出了基于Struts2+Spring + IBatis的轻量级整合开发框架,并给出了详细的实现方法。三种框架的组合可以实现Web应用的分层,能够充分发挥三种框架各自的优势,提高系统的开发效率。该整合开发框架已经成功应用于电子校历系统。
关键词:Spring; Struts2; IBatis;框架
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)27-0056-03
Abstract:Base on a brief reseacrch of the three frameworks Spring,Struts2 and IBatis,the paper raises an idea of the Struts2+Spring+IBatis development framework,and gives the implementation details。The combination of three types of framworks can realize the tired application, giving full play to their strengths of the three frameworks, improving efficiency, and is easy for system expansion and maintenance.The integration framework has been successfully applied to E-school Calendar.
Key words: spring;struts2; ibatis;framework
近年来随着我国高等教育的不断改革和蓬勃发展,大学生校园活动也日益丰富多彩,利用信息化手段将各种分散校园活动和教育活动资源实现共享是促进高等教育发展的重要途径。电子校历系统能够定期从指定页面抓取信息,并以日历的形式,按照天、周、月为全校师生提供了教学、讲座、会议等各类信息,提高了信息的记录、查阅以及传播速度,并且成本低,效率高,互动性强。。
本文结合Struts 2、Spring、IBatis技术, 提出了基于J2EE平台B/S结构的电子校历系统。该系统实现了表示层、业务层、持久层间的松耦合, 提高了代码的复用性,增强了系统的灵活性和可维护性, 最终提高了软件的质量。
1 Struts2框架
S t r u t s2 是开发基于模型( M o d e l ) -视图( V i e w )- 控制器(Controller) (MVC) 模式的应用架构的开源框架[1]。Struts2以WebWork为设计核心,允许用户的业务逻辑控制器与Servlet API分离,用户的请求由大量拦截器来处理。图1是Struts2的体系结构图。
当浏览器发送了请求后,Struts2拦截器链拦截请求并加以处理,核心控制器FilterDispatcher根据请求决定调用合适的Action,Action将处理结果的逻辑视图返回,最后Struts2框架将逻辑视图映射成实际路径。Struts2框架结构图如图1所示。
2 Spring框架
Spring是一个开源框架,为简化企业级系统开发而诞生的轻量级解决方案[2],可建立“快装式企业应用”。 Spring是轻量级的框架,简单来说,它完全可以在只有1M多大小的JAR文件里发布,而且所需的处理开销也很小。 它可以独立于各种应用服务器,也能提供应用服务器的功能,如声明式事务等。除此之外,还提供了多种方法进行的持久化数据库的解决方案。Spring具有的这些特点使开发者只需要关注业务逻辑的开发即可,代码编写更干净且易于测试。
3 IBatis框架
IBatis框架能为Java 应用提供更好地设计并实现数据持久层[3],它由SQL Maps 、DAO(Data Access Object, 数据访问对象)及一些实用工具组成。SQL Maps是IBatis Database Layer 架构最重要的组件[4], 它由简单的XML 配置文件将Java Bean 映射成SQL 语句,极大地减少访问数据库的代码。利用DAO 可以使开发者在不知道数据访问层的实现得情况下使用简单的接口组件访问数据库,为系统设计提供了更大的自由空间。
4 系统的设计与实现
4.1系统功能设计
通过对校历使用群体的调查,并结合这些群体使用校历的实际情况,可将电子校历系统划分为用户管理、节假日管理、通知公告管理、每周会议管理等八个功能模块,系统的总体功能划分如图2所示。
4.2基于Struts2+Spring+IBatis整合框架的系统架构设计
系统体系架构是开发复杂应用系统的关键。在J2EE平台下开发Web项目需要同时满足系统的功能性和非功能性需求,均衡两者之间的矛盾。本系统采用基于Struts2+Spring+IBatis的整合框架,充分發挥三种框架各自的优势,而且提高系统的开发效率,实现了B/S模式的多层Web应用。整合框架的系统架构图如图3所示。
如图所示,表示层Struts2利用核心控制器FilterDispatcher拦截了用户的所有请求,分析URL地址后调用相应Action类处理[5],Action则调用相应的业务逻辑组件来处理。Spring在运行期利用依赖注入机制将组件之间的依赖关系注入到组件中,使各应用组件以松耦合的方式组织在一起,提高了系统的灵活性和可扩展性。作为持久层的IBatis框架利用其配置文件Config.xml与Spring框架整合在一起工作。
4.3系统实现
4.3.1基于struts2框架的表示层的实现
本系统的表示层是基于Struts2 框架,由JSP页面、Action类、web.xml、struts.xml配置文件等构成。所有的用户发出的请求都由Struts 2的核心控制器FilterDispatcher攔截, 并将所有请求转入到Struts2框架中, 调用相应的Action类来处理,Struts 2的核心控制器根据Action类返回处理结果的逻辑视图, 结合struts.xml的配置, 将逻辑视图映射成实际路径。struts.xml 的部分代码如下:
…
…
其中action的name属性值为ajaxGetFestival,它的class属性为applicationContext.xml中的bean 的id值。如
4.3.2基于Spring框架的业务逻辑层的实现
在本系统中,通过应用Spring 的依赖注入、Spring DAO模式、IoC容器、面向接口编程来处理应用程序的业务逻辑和业务校验等功能[6]。Spring 通过配置文件applicationContext.xml 来配置各个业务对象与持久化对象的关系,并管理对象的创建与销毁,部分核心代码如下:
…
…