简谈框架基于J2EE技术SSH框架改善及运用学位

更新时间:2024-01-31 作者:用户投稿原创标记本站原创
摘要: 针对SSH框架存在的问题,运用J2EE各种成熟框架与技术对SSH框架进行集成和扩展,将改进后的SSH框架应用在篮球俱乐部项目的开发和维护中,降低了开发的复杂性,使开发变得简便和灵活,提高了软件开发和维护效率。
关键词: SSH框架; J2EE技术; Web开发; 篮球俱乐部
1006-8228(2012)10-24-03
引言
目前,Ja Web轻量级开发的主流技术是SSH(Struts+Spring+Hibernate)框架。但随着软件开发技术的快速发展,SSH框架表现出安全性、开发过程复杂、功能不够齐全的问题,因此,对SSH框架进行补充和改进是必要的。
针对SSH框架存在的问题,运用各种成熟框架与技术对SSH框架进行集成和扩展,实践证明,在项目的开发过程中应用改进后的SSH框架,使开发的效率显著提高源于:论文封面格式www.808so.com
,系统的可靠性、可扩展性和可维护性等各种性能也明显提升。
1 成熟框架和通用技术简介
1.1 常用框架技术
1.1.1 SSH框架
SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,利用Hibernate框架对持久层提供支持,业务层用Spring支持。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Ja对象,然后编写基本的DAO接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Ja类与数据库之间的转换和访问,最后由Spring完成业务逻辑。SSH集成框架与技术结构如图1所示。
Compass是基于Lucene之上的,是第一个实现Ja的开源搜索引擎框架。Compass封装了对全文检索引擎lucene的操作,并且提供了Spring/Hibernate的应用层框架,让用户可以不必深入了解lucene,轻松地在自己的Spring/Hibernate架构的Web应用当中集成全文检索功能。Hibernate可直接操作数据库,当数据发生改变时,可以通过Compass的OSEM对数据索引进行更新。
1.1.3 Spring MVC框架
Spring MVC框架采用前端控制模式(Front Controller),它是Spring MVC请求中枢,其核心是DispatcherServlet。Spring MVC的所有请求通过它转发到不同的处理器(Colltroller)处理,处理完后返回一个Model And View对象。DispatcherServlet查询一个或多个ViewResolver视图解析器,找到Model And View对象指定的视图对象,视图对象负责渲染返回给客户端。
1.1.4 SWF(Spring Web Flow)框架
Spring Web Flow是Spring框架提供的构建Web应用程序的全功能MVC模块。使用Spring可插入的MVC架构,可以选择是使用内置的Spring Web框架还是Struts这样的Web框架。通过策略接口,Spring框架是高度可配置的,而且包含多种视图技术,例如JaServer Pages(JSP)技术、Velocity、Tiles、iText和POI。Spring MVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行。因此,它的出现极大地提高了编程效率,尤其适合需要复杂用户交互界面的Web应用程序。
1.1.5 DWR框架
DWR(Direct Web Remoting)是一个开源项目,是基于Ja的Ajax实现。它包含服务器端 Ja 库、一个DWR Servlet以及JaScript库。DWR的主要特点是能够将服务器所写的Ja类直接转化为Jascript中所引用的对象,简化了Jascript中的转化操作[3]。
1.2 通用技术介绍
1.2.1 Ajax技术
AJAX(A synchronous JaScript and XML)实际上是几项技术按一定的方式组合, 在共同的协作中发挥各自作用的技术[4]。Ajax具有改善B/S模式下交互、带宽性能等优点。Ajax的核心是JaScript对象XmlHttpRequest。另外,Ajax为SSH提供了一种高效的数据传输方式,其常用的数据组织方式有JSON(JaScript Object Notation)。在Ajax的应用中,通过JSON组织传输大块数据,优势明显。
1.2.2 表单及时验证器
表单验证器是表单的一种验证方式,当表单提交时,通过它能提高接收数据的有效性,因此被广泛地应用于各种Web应用程序中。表单验证结合Ajax技术能发挥出实时高效的验证功能。
1.2.3 任务动态调度(Quartz)
Quartz是Web应用开发中广泛使用的任务调度解决方案,它提供的强大任务调度机制允许开发人员灵活地定义触发器等调度事件表。另外,Quartz提供了可持久化的调度运行环境机制,在需要时可以保存并恢复调度现场。
1.2.4 事件编程
基于事件的编程是一种优秀的编程方法,是符合人类思考的和行为的一种方法。在以往的面向过程的编程(C语言)中,程序运行是面向过程的,也就是说是人去迁就机器,去适应机器,而事件编程是面向对象的编程方法,都是按对象来编程,面向事件编程更能体现事件驱动的特点,因为任何动作的进行都是在事件的驱动下进行。扩展框架中的事件编程主要通过Spring 内部提供的事件处理机制来实现。1.2.5 邮件模板技术Velocity
发送邮件功能是现在企业级应用的最普遍的需求之一。通常HTML格式的邮件大部分的HTML代码都是固定的,只有少部分是变动的,因此非常适合采用模板技术来解决,达到设计与数据分离。
Velocity是开源的、应用非常广泛的邮件模板框架。其原理是用动态的数据替换模板的特殊标签[5]。通过工具类VeloeityEngineUtils和VeloeityEngine,可以将Veloeity模板和数据整合后方便地返回邮件内容和标题。
1.2.6 控制安全权限
对于任何一个完整的应用系统,完善的认证和授权机制是不可缺少的。Spring Security就是这样的一个安全框架,它能为J2EE企业应用提供强大而灵活的安全访问控制解决。通过在Spring容器中配置一组Bean,充分利用Spring的IOC和AOP功能,提供声明式安全访问控制功能。
1.2.7 单元测试技术(Junit)
单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。JUnit是一个开放源代码的优秀Ja测试框架,可对表示层、业务层、数据存储层进行单元测试,保证模块的编制正确性。
2 SSH框架的改进
由于传统SSH开发框架存在安全、开发繁琐、应用不方便等问题,SSH框架改造的目标是提供一个设计灵活简便、权限安全便于设计实现、各层易测试、各层及各种集成技术松耦合的企业应用框架。
2.1 SSH框架改进的目标
⑴ 松藕合:是指集成的各层与各种技术框架耦合性低,相互独立,可以根据业务需要有选择的应用。
⑵ 灵活简便:是指集成框架采用统一的Spring管理方式,配置简单、应用方便。为软件开发中的常遇到问题提供了解决方案,如:页面流技术、Ajax数据组织方式、页面验证器、邮件服务系统、后台应用程序的任务调度和事件驱动框架等。
⑶ 权限安全易控:是指集成框架中全面采用Spring Security对权限和资源进行控制。
⑷ 可测试性:是指为各层提供了测试方案。
2.2 具体实现
⑴ 在数据存取层(Hibernate)增加了Compass存取数据。
⑵ 在MVC(Struts2)层,集成了Spring Web Flow开发页面流程;集成了Spring MVC;集成了Spring JSON View,用于Ajax操作组织数据;集成了Spring Security控制安全权限;集成了Spring Test和Junit测试技术,为各层设计了单元测试方案。
⑶ 设计并实现了基于DWR的及时验证器;设计并实现了任务动态调度器;引入了事件编程和邮件模板技术,并将这些技术集成到SSH框架中。图2展示了SSH集成和扩展的技术与框架。
3 SSH扩展框架在某市俱乐部管理系统(BallOrganizer)的应用
3.1 项目背景
由于人们对物质的需求向精神需求扩展,推动了俱乐部的发展。如果将IT方面的管理经验应用于俱乐部的管理,肯定会对俱乐部的管理和发展产生很大作用。BallAdmin项目就是在这种背景下产生的。
3.2 基本功能
BallOrganizer是一个篮球俱乐部管理软件。申请人在申请通过后,在BallOrganizer就有了自己俱乐部管理空间,可以在自己的管理空间增加会员,增加队伍,开展活动等。图3为系统功能图。
3.3 SSH扩展框架在系统中的应用
BallOrganizer的开发使用了SSH扩展框架。其中BallOrganizer的MVC层使用了Spring MVC,由于需求中没有页面流和复杂数据的组织,因此没有使用Spring Web Flow和Spring JSON View。Spring实现对容器中的对象、事务和其他框架进行管理,Hibernate存取数据,Compass框架可检索数据,Spring Security对权限安全进行管理控制,Easy Mock对各层进行单元测试。
另外,BallOrganizer在前台页面使用基于DWR及时验证器验证合法性,任务动态调度对邮件发送进行调度,邮件模板技术对所有邮件内容进行填充,事件编源于:论文大纲怎么写www.808so.com
程方式对BallOrganizer静态页面变化进行处理。由于篇幅所限,以下仅就单元测试、Spring Security控制权限、Ajax和任务调度对SSH扩展框架在系统开发中的应用进行描述。
3.3.1 DAO单元测试的应用
DAO的模块划分与系统的功能模块划分完全一致,除去Email不需要DAO以外,其他模块都有相对应的DAO支持。在实际开发过程中,DAO的许多方法例如增、删、基本查询都是类似的,可以抽象出一个所有DAO的父类DomainObjectDao。DomainObjectDao主要提供了更新实体、保存实体、根据实体类获取所有的实体、根据guid获取实体等。图4为DAO继承结构图。
在DAO完成后,为了保证DAO的正确性,需要对DAO进行单元测试,以下程序实现BallDao对Ball类的具体测试。
3.3.2 Spring Security控制权限的应用
BallOragnizer具有前台和后台页面,Ball具有前台和后台页面,BallOragnizer可以有无数多个Ball,并且访问它们的权限完全不同。因此对系统中对URL的管理好坏将直接影响系统成败。
在BallOragnizer中,对于URL的管理引入了域名分级的思想,就是使用Ball的名称跟在根URL后,用来标识这个Ball的URL。使用这种方式可以很好地组织系统中URL并且可以很方便地使用Spring Security来控制权限。表1展示了系统中URL管理。
3.3.3 Ajax应用
BallOragnizer中,一个Ball可以有多个团队,并且这些团队可以由用户随意进行拖放排序。这种功能的实现主要需要Ajax实时数据传输功能实现,需要将前台搜集到的团队序号传到后台并对相应的团队序号进行修改。
3.3.4 任务调度的应用
BallOrganizer中使用了许多任务调度。任务调度的使用主要分为两种动态安排任务,即任务动态调度和系统初始时设置的任务调度。任务动态调度使用主要是对Email发送进行任务动态调度。系统初始时设定的任务调度,主要用于为新注册会员自动发送欢迎信件等。
3.3.5 Compass检索框架的应用
Compass检索框架在BallOrganizer中的主要功能是实现对实体对象的检索和索引更新。与Spring对Hibernate的支持类似,Compass对Spring集成做了很好的封装,并提供了CompassTemplate来简化诸如对Session、Transaction、Exception等操作,使用此工具,可以有效提高检索效率。例如以下代码实现把实体对象Ball存储到Compass索引:
4 结束语
传统的SSH框架存在安全性差、应用不便等问题。本文根据现有成熟技术结合SSH框架集成了一个简单灵活、权限安全控制简便、容易测试和各种技术松耦合的开发框架。通过实例验证表明,该扩展框架可使开发人员将关注点更多地集中到业务逻辑上,提高了软件开发和维护效率。

点赞:12030 浏览:47658