基于J2EE技术的SSH框架的改进及应用
作者:翟高粤
来源:《计算机时代》2012年第10
        摘要: 针对SSH框架存在的问题,运用J2EE各种成熟框架与技术对SSH框架进行集成和扩展,将改进后的SSH框架应用在篮球俱乐部项目的开发和维护中,降低了开发的复杂性,使开发变得简便和灵活,提高了软件开发和维护效率。
        关键词: SSH框架; J2EE技术; Web开发; 篮球俱乐部
        中图分类号:TP311 文献标志码:A 文章编号:1006-8228(2012)10-24-03
        引言
        目前,Java Web轻量级开发的主流技术是SSH(Struts+Spring+Hibernate)框架。但随着软件开发技术的快速发展,SSH框架表现出安全性、开发过程复杂、功能不够齐全的问题,因此,对SSH框架进行补充和改进是必要的。
        针对SSH框架存在的问题,运用各种成熟框架与技术对SSH框架进行集成和扩展,实践证明,在项目的开发过程中应用改进后的SSH框架,使开发的效率显著提高,系统的可靠性、可扩展性和可维护性等各种性能也明显提升。
        1 成熟框架和通用技术简介
        1.1 常用框架技术
        1.1.1 SSH框架
        SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,利用Hibernate框架对持久层提供支持,业务层用Spring支持。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO接口,并给出HibernateDAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring完成业务逻辑。SSH集成框架与技术结构如图1所示。
        Compass是基于Lucene之上的,是第一个实现Java的开源搜索引擎框架[1]Compass封装了对全文检索引擎lucene的操作,并且提供了Spring/Hibernate的应用层框架,让用户可以不必深入了解lucene,轻松地在自己的Spring/Hibernate架构的Web应用当中集成全文检索功能。Hibernate可直接操作数据库,当数据发生改变时,可以通过CompassOSEM对数据索引进行更新。
        1.1.3 Spring MVC框架
        Spring MVC框架采用前端控制模式(Front Controller),它是Spring MVC请求中枢,其核心是DispatcherServletSpring MVC的所有请求通过它转发到不同的处理器(Colltroller)处理,处理完后返回一个Model And View对象。DispatcherServlet查询一个或多个ViewResolver视图解析器,到Model And View对象指定的视图对象,视图对象负责渲染返回给客户端。
        1.1.4 SWF(Spring Web Flow)框架
        Spring Web FlowSpring框架提供的构建Web应用程序的全功能MVC模块。使用Sprin
g可插入的MVC架构,可以选择是使用内置的Spring Web框架还是Struts这样的Web框架。通过策略接口,Spring框架是高度可配置的,而且包含多种视图技术,例如JavaServer PagesJSP)技术、VelocityTilesiTextPOISpring MVC分离了控制器、模型对象、分派器以及处理程序对象的角,这种分离让它们更容易进行定制。因此,它的出现极大地提高了编程效率,尤其适合需要复杂用户交互界面的Web应用程序[2]
        1.1.5 DWR框架
        DWR(Direct Web Remoting)是一个开源项目,是基于JavaAjax实现。它包含服务器端 Java 库、一个DWR Servlet以及JavaScript库。DWR的主要特点是能够将服务器所写的Java类直接转化为Javascript中所引用的对象,简化了Javascript中的转化操作[3]
        1.2 通用技术介绍
        1.2.1 Ajax技术
        AJAX(A synchronous JavaScript and XML)实际上是几项技术按一定的方式组合, 在共同的协作中发挥各自作用的技术[4]Ajax具有改善B/S模式下交互、带宽性能等优点。Ajax
的核心是JavaScript对象XmlHttpRequest。另外,AjaxSSH提供了一种高效的数据传输方式,其常用的数据组织方式有JSON(JavaScript Object Notation)。在Ajax的应用中,通过JSON组织传输大块数据,优势明显。
        1.2.2 表单及时验证器
        表单验证器是表单的一种验证方式,当表单提交时,通过它能提高接收数据的有效性,因此被广泛地应用于各种Web应用程序中。表单验证结合Ajax技术能发挥出实时高效的验证功能。
        1.2.3 任务动态调度(Quartz)
        QuartzWeb应用开发中广泛使用的任务调度解决方案,它提供的强大任务调度机制允许开发人员灵活地定义触发器等调度事件表。另外,Quartz提供了可持久化的调度运行环境机制,在需要时可以保存并恢复调度现场。
        1.2.4 事件编程
        基于事件的编程是一种优秀的编程方法,是符合人类思考的和行为的一种方法。在以往的面向过程的编程(C语言)中,程序运行是面向过程的,也就是说是人去迁就机器,去适应机器,而事件编程是面向对象的编程方法,都是按对象来编程,面向事件编程更能体现事件驱动的特点,因为任何动作的进行都是在事件的驱动下进行。扩展框架中的事件编程主要通过Spring 内部提供的事件处理机制来实现。
        1.2.5 邮件模板技术Velocity
        发送邮件功能是现在企业级应用的最普遍的需求之一。通常HTML格式的邮件大部分的HTML代码都是固定的,只有少部分是变动的,因此非常适合采用模板技术来解决,达到设计与数据分离。
        Velocity是开源的、应用非常广泛的邮件模板框架。其原理是用动态的数据替换模板的特殊标签[5]。通过工具类VeloeityEngineUtilsVeloeityEngine,可以将Veloeity模板和数据整合后方便地返回邮件内容和标题。
        1.2.6 控制安全权限
        对于任何一个完整的应用系统,完善的认证和授权机制是不可缺少的。Spring Security就是这样的一个安全框架,它能为J2EE企业应用提供强大而灵活的安全访问控制解决。通过在Spring容器中配置一组Bean,充分利用SpringIOCAOP功能,提供声明式安全访问控制功能。
        1.2.7 单元测试技术(Junit
        单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。JUnit是一个开放源代码的优秀Java测试框架,可对表示层、业务层、数据存储层进行单元测试,保证模块的编制正确性。
        2 SSH框架的改进
        由于传统SSH开发框架存在安全、开发繁琐、应用不方便等问题,SSH框架改造的目标是提供一个设计灵活简便、权限安全便于设计实现、各层易测试、各层及各种集成技术松耦合的企业应用框架。
        2.1 SSH框架改进的目标
        ⑴ 松藕合:是指集成的各层与各种技术框架耦合性低,相互独立,可以根据业务需要有选择的应用。
        ⑵ 灵活简便:是指集成框架采用统一的Spring管理方式,配置简单、应用方便。为软件开发中的常遇到问题提供了解决方案,如:页面流技术、Ajax数据组织方式、页面验证器、邮件服务系统、后台应用程序的任务调度和事件驱动框架等。
        ⑶ 权限安全易控:是指集成框架中全面采用Spring Security对权限和资源进行控制。
        ⑷ 可测试性:是指为各层提供了测试方案。
        2.2 具体实现
        ⑴ 在数据存取层(Hibernate)增加了Compass存取数据。
        ⑵ MVCStruts2)层,集成了Spring Web Flow开发页面流程;集成了Spring MVC;集成了Spring JSON View,用于Ajax操作组织数据;集成了Spring Security控制安全权限;集成了Spring TestJunit测试技术,为各层设计了单元测试方案。
        ⑶ 设计并实现了基于DWR的及时验证器;设计并实现了任务动态调度器;引入了事件编程和邮件模板技术,并将这些技术集成到SSH框架中。图2展示了SSH集成和扩展的技术与框架。
        3 SSH扩展框架在某市俱乐部管理系统(BallOrganizer)的应用
        3.1 项目背景
        由于人们对物质的需求向精神需求扩展,推动了俱乐部的发展。如果将IT方面的管理经验应用于俱乐部的管理,肯定会对俱乐部的管理和发展产生很大作用。BallAdmin项目就是在这种背景下产生的。
        3.2 基本功能
        BallOrganizer是一个篮球俱乐部管理软件。申请人在申请通过后,在BallOrganizer就有了自己俱乐部管理空间,可以在自己的管理空间增加会员,增加队伍,开展活动等。图3为系统功能图。
        3.3 SSH扩展框架在系统中的应用
        BallOrganizer的开发使用了SSH扩展框架。其中BallOrganizerMVC层使用了Spring MVC,由于需求中没有页面流和复杂数据的组织,因此没有使用Spring Web FlowSpring JSON ViewSpring实现对容器中的对象、事务和其他框架进行管理,Hibernate存取数据,Compass框架可检索数据,Spring Security对权限安全进行管理控制,springmvc选择题Easy Mock对各层进行单元测试。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。