J2EE集成开源框架在高校课程改革系统中的应用
2009-06-05
作者:李文杰,翁胜利
摘 要:以高校课程改革为应用实例,通过对基于WebWork、Spring和Hibernate的J2EE轻量级集成框架的研究与应用,以及对三种开源软件基础技术的介绍,阐述了集成框架在高校专业课程改革系统开发中代码复用、系统开发效率以及在提高数据预处理和数据挖掘精确度上的优势。
关键词:J2EE;集成开源框架;数据预处理
随着信息技术的发展以及B/S应用程序的广泛使用,为了能简单高效地开发Web项目,迫切需要一个通用、稳定的集成架构,以此提高工作效率、增强程序的可维护性和可扩展性。本文选择开源框架WebWork、Spring和Hibernate,以高校课程改革为应用背景,实现了一套方便灵活、低耦合、易维护的开发方式。
1 J2EE开源框架
1.1 MVC模式
传统的Web项目开发存在诸多不足,MVC (Model View Controller)模式的出现使其得到了改进和完善。在MVC模式中Event导致Controller改变Model或View,或者同时改变两者。当Controller改变了Model的数据或者属性时,所有依赖的View都会自动更新;当Controller改变了View的部分时,View会从Model中获取数据来刷新自己。基于MVC应用程序的开发是由这3个部分共同协作完成,其组件的关系和功能如图1所示。
MVC设计模式是利用控制器来分离模型和视图,从而达到一种层间松散耦合的效果,减弱业务逻辑接口和数据接口之间的耦合性,提高了系统的灵活性、可复用性和可维护性。现在网络开发框架多数都遵循MVC设计模式,效果较好。
1.2 WebWork框架
WebWork是基于Command设计模式的、致力于组件化和代码重用的强大的开源框架[1]。在利用WebWork框架开发的过程中,根据业务逻辑创建的实现方法xAtion担任控制器的角色,其实现了WebWork类库中XWork中的Action接口。其主要功能是从请求中获取前台页面需要传送的参数值,把这些值传递给执行业务逻辑操作的模型对象,由业务对象执行业务逻辑操作,并返回给转向页面用来显示执行的结果。
MVC中的表现层负责页面的显示和业务逻辑的处理,利用WebWork的标签库与JavaScript脚本语言相结合的方式实现。WebWork框架从Web中脱离出来,与框架Struts相比,在Action类的抽象和Web环境的耦合方面具有优势,在开发过程中更加方便和实用。
1.3 Spring框架
Spring框架是一个分层的J2EE应用程序框架,它是一个从实际项目开发经验中抽取出来的,可高度重用的开发框架[2]。Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理 Bean 的方式。Spring通过JavaBean模型提供基于IoC 容器的BeanFactory和基于AOP框架的JavaBean组件,不需要维护组件之间的依赖关系,只要在配置文件applicationContext.xml中设置属性,Spring容器将自动依赖注入到相关的组件,完成业务方法层组件的配置与加载。Spring框架与持久层框架Hibernate集成到一起,实现支持DAO以及事务策略,提高代码的可重用性。从而,在Web应用开发过程中,实现逻辑层和数据访问层的完全分离。
1.4 Hibernate框架
Hibernate是一种实现对象和关系映射的框架,对JDBC进行轻量级对象封装,使程序员利用面向对象的思想来操作关系数据库,可以减轻开发者与大量普通数据持续性相联系的一些编程任务。在开发中,自动生成的SQL,使开发者减少了进行对象转化等繁琐任务,并能使应用程序移植到所有SQL数据库,提供透明的持续性。在使用Hibernate框架时,通过编写O/R映射描述文件,完成对象、关系数据库之间的映射,持久对象则根据映射文件生成,最后,编写业务逻辑类,从而提高实际开发的效率。
2 集成框架原理
整个J2EE轻量级Web集成开发架构选用WebWork、Spring和Hibernate 三种框架技术,实现集成架构。客户端层采用JSP表示,用WebWork的标签库和JavaScript实现客户端的显示和控制,做相应请求和响应;表示层用WebWork统一管理视图和控制器部分,接受客户端的HTTP请求,创建并调用对应的Action实现类,完成与业务逻辑层的交互,并返回执行结果到客户端层;业务逻辑层利用接口与实现相分离的方式编写对应的Service对象,在Spring的IoC容器中登记为业务模型,由Spring负责管理和配置DAO组件,提供对应的Action完成业务逻辑等操作,保证数据完整性;数据持久层采用Hibernate框架,使用导入DAO完成最终的Java类和数据库间的转换和访问;数据层采用关系数据管理系统,如Oracle、MySQL等,整个集成开发架构如图2所示。
采用上述方式,利用这三种框架各自的优势,能有效实现视图、控制器与模型的分离,将业务逻辑层和数据持久层独立出来。其中,框架WebWork在Web程序开发中起到重要作用。
3 集成框架的应用
开发中,有诸多Web项目使用J2EE的开源框架,本文以高校专业课程改革系统为应用实体,重点介绍利用开源框架WebWork、Spring和Hibernate相结合的方式开发Web项目。 选择MyEclipse作为Java的开发平台,直接加载项目所需要的开源框架WebWork、Spring和Hibernate的相关的类以及配置文件。
3.1 前期准备
加载开源框架类。在Web项目中,首先导入Spring开源框架,建立SessionFactory对应的类,MyEclipse开发平台将加载Spring运行的相关类和applicationContext.xml配置文件,然后在Spring的基础之上加载Hibernate,根据关系型数据库所建立的表,依据MyEclipse中的配置,打开数据库连接,导入数据表的对象类和一些基本实现方法。另外,把WebWork相关的类复制到项目中,添加XWork.xml文件,并在web.xml文件中配置我们所用的WebWork框架,使加载类在项目中能够正常的使用。
登录模块的应用。在实际Web项目中,这三种框架相结合使用的事例较多,用法基本相同,只是功能有所差别。以用户登录模块为例,其主要代码如下:
用户名:
密码:
XWork.xml的配置。从JSP页面上将用户输入的用户名和密码提交后,将转入配置文件XWork.xml中,通过这个配置文件寻找Java后台处理登录过程逻辑的类,同时将提交的内容转移到Java逻辑类中进行判断处理。
逻辑处理。与上文中XWrok.xml中的配置相对应,在LoginAction类中,使用UserLogin逻辑处理方法,判断用户名和密码是否与数据库中的数据相符,以此做出不同处理,并回显在页面上。UserLogin方法实现主要代码如下:Userlogin:User user = lb.getLoginUser(username);session. setAttribute ('user', user);
另外,在数据库的导入过程中,根据数据库中表的名称,利用Hibernate框架将对象类User.java和操作类UserDAO.java导入到项目中,在处理逻辑的过程中直接调用,以此加速项目开发的周期。
前台页面响应。在后台根据用户名和密码做出判断,在前台显示结果,主要表现为:一是页面的转向,通过XWork.xml的配置得出要跳转到哪个页面。如上文程序所示,如果返回Action. ERROR,则转向error.jsp;如果返回Action. SUCCESS,则转向index.jsp。另一个是信息的反馈,通过Session或Request将需要传送到前台页面的值放到缓冲区里,然后显示在JSP页面相应的位置。
从上面这个登录流程的简单例子可以看出,在整个集成框架中不存在与业务逻辑无关的垃圾代码,也没有SQL查询语句,整个开发过程完全是面向对象的操作方式和可动态配置、可移植的Xml文件,大大提高了开发效率。
3.2 高校课程改革系统架构
在高校课程改革管理系统的开发中,通过使用基于WebWork、Spring和Hibernate的J2EE轻量级集成框架,加载开源框架类,依据MyEclipse中的配置,打开数据库连接,导入数据表的对象类和一些基本实现方法。特别是将存有高校专业课程的Excel表格中的数据较完整的导入数据库中(本文使用SQL server 2000数据库),以避免人为操作的失误,同时也提高了工作效率,为以后对数据库中存储的“专业课程”数据进行预处理做好铺垫,提高数据挖掘的准确性和真实性。课程改革系统架构如图3所示。
综上所述,将 WebWork、Spring和Hibernate三种开源框架集成在一起,形成一种轻量级Web开发架构,该架构充分发挥三者的优点,层次清晰,具有较高的伸缩性、可扩展性和可复用性,开发简洁、维护方便。通过对J2EE集成开源架构的分析和研究,将其应用在高校专业课程改革管理系统的开发过程中,使Web项目的设计和开发中具有一定的优势和广泛的应用前景。
参考文献
[1] LIGHTBODY P. WebWork in Action[Z].Manning Publications Co,2005.
[2] RAIBLE M. Spring Live[Z].Source Beat Publishing,2004.
[3] 阎宏. Java与模式[M].北京:电子工业出版社,2005.
[4] JOHNSON R. J2EE设计开发编程指南[M].北京: 电子工业出版社,2003.
[5] ECKEL B. Java编程思想[M].侯捷,译.北京: 机械工业出版社, 2002.