【VC++开源代码栏目提醒】:网学会员为需要VC++开源代码的朋友们搜集整理了基于Java EE的轻量级Web应用框架研究与实现 - 硕士论文相关资料,希望对各位网友有所帮助!
武汉科技大学 硕士学位
论文基于Java EE的轻量级Web应用框架研究与实现 级别:硕士 专业:计算机应用技术 指导教师:陈和平 20081126武汉科技大学硕士学位
论文 第1页 摘要 随着Java EE技术的发展,Java EE在企业级软件开发中占的地位也同益重要,但是作为传统的基于EJB的Java EE架构开始越来越不能满足一些企业对应用开发新的要求。
传统的基于EJB的Java EE架构其优势在于高级Java EE特性和分布式应用,但是很多项目对这些高级特性和分布式特性要求并没有要求,而且,这些高级特性和分布式应用较为复杂的开发和配置大大降低了企业的开发速度,也增加了企业的开发成本。
本文针对这一问题,提出了一种基于
开源框架的轻量级Java EE开发架构的解决方案。
本文对WebWork、Spring、Hibernate框架进行研究,具体分析各个框架在Web应用的不同层次上所发挥的作用。
并整合三种框架,设计出一个适合企业Web应用的架构。
并对Spring和WebWork、Hibemate整合的耦合性进行深入的分析研究,提出了一种基于BaseAction和HibernateGenericSupport类的框架整合解耦方案。
其中,WebWork是一个实现了MVC模式的web应用框架,它全面减轻了构建多层web应用的负担。
轻量级容器使用依赖注入的设计原理,可以动态地使系统主要组件之间的耦合变松散;Spring是一种多层的Java EE应用轻量级框架,是为解决企业应用程序开发复杂性而创建的;Hibemate是一个
开源的持久层框架,它全面减轻了数据库开发的复杂度,使系统具有更好的性能和移植性。
最后作者将此架构方案应用到工业消防综合管理系统项目的开发中。
通过项目的完成和试用,不仅证明了该方案的可行性和实用性,而且证实了采用该架构的系统具有更好的性能、可扩展性和可维护性。
它能被广泛的应用到其它类似系统的建设中,也能被借鉴到其它相关的项目。
关键词:Java EE;WebWork;Spring;Hibernate 武汉科技大学 研究生学位
论文创新性声明 本人郑重声明:所呈交的学位
论文是本人在导师指导下,独立进行研究所取得的成果。
除了文中已经注明引用的内容或属合作研究共同完成的工作外,本
论文不包含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
申请学位
论文与资料若有不实之处,本人承担一切相关责任。
论文作者签名: 查墨丝 日期: 细8.段.乡 研究生学位
论文版权使用授权声明 本
论文的研究成果归武汉科技大学所有,其研究内容不得以其它单位的名义发表。
本人完全了解武汉科技大学有关保留、使用学位
论文的规定,同意学校保留并向有关部门送交
论文的复印件和电子版本,允许
论文被查阅和借阅,同意学校将本
论文的全部或部分内容编入有关数据库进行检索。
蔓堡丝 指导教师签名:—0斗
论文作者签名: 日 期: 逆曼:!兰:竺武汉科技大学硕士学位
论文 第1页 第一章绪论1.1选题背景及意义 随着软件技术的发展,软件规模的扩大,其复杂度同益升级。
设计者或者开发人员将新的设计或者开发建立在以往的工作基础上,复用以往成功的案例。
因此,人们越来越意识到软件重用技术的重要性,设计模式川和框架【2】应运而生。
开源软件的兴起,使得框架更是层出不穷。
架构是软件系统从整体到部分的最高层次的划分,一般由多个不同领域的框架组成。
~个成功的软件需要有一个成功的架构,但软件架构的建立是一个复杂而有待持续改进的过程,软件人员不可能对每个不同的项目做不同的架构,而总是尽量重用以前的架构,或开发出尽量通用的架构方案。
目前随着Java EE标准的诞生及推广,企业应用方面采用Java EE体系架构方案已经发展成为一种潮流。
其中,Java EE的体系架构将一个系统划分为Web和EJB两个主要部分,从设计上抽象为表现层、业务逻辑层和数据持久层。
采用Web技术来实现表现层,EJB规范实现业务逻辑层和数据持久层,这三个层次从一个高度将Java EE分离开来,实现了解耦的目的,最大限度的实现了软件的复用技术【3】。
在此Java EE的经典架构中,所有数据访问都要通过Entity Bean,业务对象都是带远程接12的无状态Session Bean,运行在EJB容器中。
不过,EJB是一种重量级的高度侵入性的框架规范,重量级在于它的分布式应用,高侵入性是指指定了众多实现者必须遵从的接口和规范。
其后果就是使得系统部署复杂、运行缓慢、测试困难、资源消耗代价高,而且基于侵入性框架设计开发,耦合性能高,不易分离。
为了解决传统Java EE架构中的不足和满足企业开发新的要求,本文提出了基于JavaEE的轻量级框架解决方案。
一 一个典型的基于Java EE的轻量级框架,它的Java类都运行在同一个JVM中。
业务对象是用POJO实现的,并在一个控制反转的容器中运行。
所有对象需要部署在IOC容器中运行但它们并不依赖于容器。
开发者可以在应用服务器之外,用普通的JUnit测试用例来测试它们。
所有的调用都是针对业务接口,而不是针对业务对象的实现类,以确保高度的接插性。
借助AOP,可以为POJO业务对象提供声明性事务管理和其他横切性的企业级服务。
事务的划分将由业务逻辑层或者更为合理的容器基础设施负责。
业务对象是无状态的,大多数时候,POJO业务对象是多线程的无状态服务对象。
web层是业务逻辑层之上的一个薄层,只负责处理用户输入,并将业务处理的结果展示给用户。
数据访问层使用轻量级的O/R映射层,提供透明的持久化【弘71。
当前,主流的轻量级框架有Strutsl.x、WebWork、Struts2、JSF、Spring、Hibernate、iBatis等,需要我们从众多的框架中,选择合适的轻量级框架进行整合,形成一个高效的架构方案,以满足企业级Web应用的开发需求【8〕。
本文中,采用的是WebWork、Spring、Hibernate集成的架构,其中,WebWork的MVC框架极大改进了
代码重用,而且
代码结构清晰;Hibernate的ORM特性使得数据库移植和操作变得更简单。
使用基于该三个框架整合的架构可以实现
代码重用、设计重用,让
代码更容易被人理解、保证
代码可靠性,简化 第2页 武汉科技大学硕士学位
论文开发的复杂性,提高系统的可扩展性和可维护性。
可以让开发过程中的分工更加明确,对于提高工作效率,具有重要的现实意义。
1.2主要研究内容和所做的工作 本课题主要建立一个满足Java EE规范的轻量级框架集成的架构,主要应用于对JavaEE高级特性和分布式特性要求不高的企业级Web应用。
通过研究比较目前Java EE领域流行的几种
开源框架,选用了WebWork、Spring和Hibernate框架进行整合,使其成为一个具有一定集成度的软件开发架构,在集成框架的过程中,着重讨论框架相互整合改进,以降低框架之间耦合性,提高该架构的复用性能。
并将该架构在工业消防综合管理系统中加以实现。
通过系统的运行效果来看,相对于传统的Java EE架构,本架构有较低的开发复杂度和较高的
代码重复度,大大加快了开发工作的效率。
本文所做的具体工作如下: 1.叙述了Java EE的架构技术,将设计模式、框架、架构、轻量级框架等概念做了比较清晰的介绍,这些是搭建一个软件架构最基本核心的概念。
2.分析比较了当前最流行的几种
开源框架,结合具体项目讨论相关框架的适用与取舍;着重讨论了WebWork、Spring和Hibernate三个框架的整合。
这也是构建好一个软件架构的关键的地方。
3.在整合三个框架的同时,对所参与的实际开发项目的需求分析、功能以及设计思想做了详细的叙述。
4.将改进后的框架的
代码整合应用到项目相关模块实际开发工作之中。
5.对实现的架构进行了总结,并对框架中的不足和今后改进作了说明。
1.3本文的组织和结构
论文各章节内容安排如下: 第一章:绪论概述了
论文选题背景与意义,对本课题主要研究内容、所实现的目的做了介绍,详细列出了具体所做的工作。
第二章:Java EE架构的技术基础介绍了Java EE相关概念、Java EE体系架构、模式和框架、EJB和轻量级框架、三种
开源框架WebWork、Spring和Hibernate的结构以及相关核心概念,这些是搭建一个软件架构最基本核心的概念。
第三章:轻量级框架的设计与整合分析了三种框架各自的特点与不足,集成三种框架的设计,着重讨论了webwork框架与Spring框架整合、Hibernate框架与Spring框架整合的方法,最后说明了整合后框架的优点。
第四章:应用实例首先进行了系统的需求分析,接着进行了系统的系统开发的管理性和技术性原则分析,然后分析了系统流程,最后重点分析了三大功能模块,并以核心模块部分作为典型实现,同时权限安全也用
代码予以实现。
第五章:总结和展望 对实现的架构进行了总结,并对不足和今后改进作了说明。
武汉科技大学硕士学位
论文 第3页 第二章Java EE架构的技术基础2.1 Java EE相关概念 JavaEE是Sun公司在1999年6月推出的技术规范,是建立在Java2平台上的企业级 分布式网络系统开发要求的最佳解决方案。
最初Sun公司给它取名为J2EE,后来当JDK 升级到1.5之后,改名为Java EE,本文按Sun公司规范统一称为Java EE。
Java EE主要是 由一些应用程序编程接13(API)组成的,可以被用来创建大规模的、分布式的、基于组件的、 多层的应用程序;Java EE和组成它的API的规范一起构成了创建和部署企业应用程序的 标准。
Java EE既提供了用于管理应用程序的基础设施,又提供了用于建立应用程序的API服务。
作为平台,Java EE提供了~个多层结构的分布式的应用程序模型,该模型具有重用组件的能力、基于扩展标记语言(XML)的数据交换、统一的安全模式和灵活的事务控制 机制。
在这个体系结构中,应用开发者的注意力可以集中在封装业务逻辑和业务规则上, 一切与基础结构服务相关的问题以及底层分配问题都由应用程序容器或者服务器来处理。
Java EE提供了事务处理、对象生存控制、状态维持、并发控制、安全检测、资源共享等 系统服务【9‘1们,这些服务只要通过简单的配置就可以在Java EE应用服务器上实现。
2.1.1 Java EE体系架构 随着Java EE标准的诞生及推广,企业应用方面采用Java EE体系架构已经发展成为 一种潮流。
Java EE的体系架构特别适用于使用Java的基于Web的企业应用的开发与部署【l 21。
软件开发者和企业,使用Java EE体系架构能够快速地进行企业应用的开发和部署,从而有效地替代了传统的两层和多层结构【13】。
Java EE体系架构图如图2.1所示: 客户端 Java EE服务器 数据库服务器 第4页 武汉科技大学硕士学位
论文 图2.1 Java EE体系架构图 整个应用系统由客户层(Client)、W曲层(Web)、业务逻辑层(Business Logic)和企业信息系统层(Enterprise Information Systems)构成: (1)客户层 应用客户端部分,它可以是基于Web应用的,也可以是不基于Wcb的。
在一个基于web的Java EE中,浏览器负责显示由运行在web层的web组件生成的包含各种标记语言(HTML、XML、XSL等)的Web页面,它可以通过运行在Web层中的JSP页面和Servlet与Java EE服务器中的业务层进行通信;一个不基于Web的Java EE应用系统中,一个独立的客户端程序是一些运行在基于网络系统中的Java应用程序,可以通过远程方法调用(RMI.IIOP)直接访问运行在企业JavaBean(EJB)容器中的EJB组件,不基于Web的客户端程序可能也包括一个JavaBeans类来管理用户输入,并将输入发送到业务逻辑层中运行的EJB对象来处理。
(2)Web层 Java EE的Web组件既可以是Servlet也可以是JSP页面。
Servlet是一种服务器端程序,允许应用程序逻辑嵌入到超文本传输协议(HTTP)请求响应过程中。
JSP提供了一种在网页中嵌入组件的方式,它是一个基于文本的文档,由Web容器编译成相应的Servlet,这样在应用程序逻辑和表示逻辑之间有了清楚的分界。
Web层也可以包括一个JavaBeans类来管理用户输入,并将输入发送到业务逻辑层中运行的JavaBean或EJB对象来处理具体业务。
(3)业务层 业务层也叫EJB层或应用层,它由EJB器服务器和EJB组件组成。
一般情况下,许多开发商把web服务器和EJB服务器产品结合在一起发布,称为应用服务器。
EJB层用来实现企业级信息系统的业务逻辑,这是企业级应用的核心,由运行在业务层中的EJB来处理,一个Bean从客户端接收数据、处理,然后把数据送到企业信息系统层次存储起来。
同样,一个子Bean也可以从企业信息系统层取出数据,发送到客户端程序。
业务层中的EJB要运行在容器中,容器解决了底层的问题,如事务处理、生命周期、状态管理、多线程、安全管理、资源池等。
(4)企业信息系统层 企业信息系统层运行企业信息系统软件,包括企业基础设施系统,例如企业资源计划(ERP)、客户关系管理(CRM)、数据库系统及其它遗留信息系统(Legacy InformationSystems)。
业务层和Web层共同组成了三层Java EE应用的中间层,其他两层是客户端层和存储层或企业信息系统层。
2.1.2模式与框架 虽然Java EE分层模型提供了一个很好的企业应用解决方案,但随着软件规模不断扩大,复杂度日渐升级,开发人员面临问题也越来越多。
开发人员需要将以往开发成功的案武汉科技大学硕士学位
论文 第5页例复用到新的软件开发上,因此,人们越来越意识到软件重用技术的重要性,模式与框架技术应运而生。
(1)MVC模式 MVC模式是一个设计模式,更准确的说是一个架构模式【I】。
一个架构模式描述软件系统里的基本的结构组织或纲要,提供~些事先定义好的子系统,指定它们的责任,并给出把它们组织在一起的法则和指南。
MVC设计模式结构如图2.2所示: -.万法调用 ,事件 图2.2 MVC结构图 模型表示应用程序的业务逻辑,它是应用程序的核心,必须能够满足大多数客户的需求,包括保证应用程序各组件的事务整合、维护并快速获取应用数据,支持事务工作流的协调以及在已有应用程序中集成新的应用组件等。
将业务规则封装到组件中有利于测试、改进质量和促进重用。
视图实现模块的外观,它是应用程序的外在表现。
它可以访问模型的数据,却不了解模型的情况,同时它也不了解控制器的情况。
当模型发生改变时,视图会得到通知,它可以访问模型的数据,但不能改变这些数据。
Web界面的开发人员不需要了解或关心数据库发生什么事情,或者事务逻辑进行了什么操作。
控制器接受用户请求,把用户数据传给业务逻辑模块,并调用相应的业务逻辑模块进行处理,最后根据用户所需要的响应调用相应的视图模块生成结果页面,返回浏览器。
它将模型和视图联系在一起。
(2)MVC模式在Java EE平台上的实现 通过MVC模式来设计一个基于Java EE技术的Web应用的开发平台,在此平台中,模型一般由JavaBean或者EJB来充当,因为它们能够处理绝大部分事务逻辑和数据结构, 第6页 武汉科技大学硕士学位
论文还能与数据库或文件系统进行交互,承担维护应用程序数据的责任;控制器一般是用Servlet来实现的,因为它负责接收事件、确定合适的处理程序、调用处理程序并触发合适的响应,并不需要向客户端输出信息;视图的重心在于页面设计,JSP很适合编写动态页面,是开发页面模块的最好选择。
因此通过此平台能够提供大量的抽象度高且功能强大的基础组件框架和丰富灵活的客户化程序和应变体系,提高软件性能和可维护性,达到提高软件质量的目的。
其体系结构如图2.3所示: 企业服务器 高田瞻蕊罢 ^二L,U,J嘎7J面 请求 控制器 卜、I 厂 、 卜、 {軎量 、/—、 L. l \一币 浏 览 1(Serv〕et) \ 一/ 器 ,黻f。
,罴,\ > 含二// 1 数据源 响应 < J 视图 (Jsp) \—/ 图2.3 Java EE MVC体系结构图 (3)框架 Java EE规范描述了一系列逻辑部件,描述了这些部件的职责和它们的规范,约定了这些部件之间交互的接口和协议、标准,规划出一个如何利用这些逻辑部件来实现一个应用系统的蓝图,即是一个软件架构。
而根据这一设想,各厂商开发出了各自的产品,包括开发工具和应用容器,开发者利用这些工具和容器就能方便的开发出符合Java EE规范的应用程序。
这些工具和容器就是软件框架。
所以说框架不是现成可用的应用系统,它只是一个半成品,是针对一个特定问题的解决方案和辅助工具。
框架的使用除了提高系统的重用性外,另一个重要特性就是解耦性。
而衡量应用系统设计开发水平高低的标准就是解耦性;应用系统使用框架使得各个功能相互依赖性降低,更好地实现软件的可维护性、可拓展性等设计目标。
Java EE平台划分为Web层和服务层,从设计上抽象为表现层、业务逻辑层和数据持久层,使用EJB规范实现业务逻辑层和数据持久层,Web技术实现表现层,通过这三个层次分别实现来达到解耦目的。
2.1.3EJB与轻量级框架 EJB就是一个企业级的JavaBean,是一个可重用的,可移植的Java EE组件。
EJB必须运行在EJB容器罩,允许丌发者只关注与Bean中的业务逻辑而不用考虑象事务支持,安全性和远程对象访问等复杂和容易出错的事情。
EJB以POJO形式丌发,开发者可以用元数据注释来定义容器如何管理这些Bean。
根据复杂程度人们习惯把EJB称为重量级,把其他的
开源框架称为轻量级框架。
武汉科技大学硕士学位
论文 第7页 EJB面向的是大型的应用项目,提供全方位的业务服务,由于试图解决太多的问题,使得EJB的使用过于复杂,消耗大量的系统资源,开销较大。
正因为EJB存在诸多问题,轻量级框架从2003年开始逐渐开始流行,它们提供了管理业务对象和提供企业级服务的能力,而不必求助于沉重的EJB基础设施。
Spring是目前最为成熟,应用最为广泛的一种轻量级框架,将Spring和其他
开源框架如表示层的WebWork数据持久层的Hibernate进行整合,可以形成一个具有一定集成度的软件开发架构。
下面就对这三个框架的体系结构和工作原理作简要介绍。
2.2表示层框架WebWork WebWork是由OpenSymphony组织开发的MVC模式JaVaEE web框架四。
现在webWork已经被拆分成了Xworkl和Webwo此两个项目。
Xwork是一个标准的Command模式实现,并且完全从web层脱离出来。
Xwork提供了很多核心功能:前端拦截器 (interceptor),表单验证,类型转换,基于OGNL的表达式语言,IoC容器等。
WebWork2建立在Xwork之上,处理HTTP的响应和请求。
支持多视图表示,视图部分可以使用JSP,Velocity,FreeMarker,JasperReports,XML等。
2.2.1 WebWork框架工作流程 WebWork框架是MVC模式的一种实现。
下图2.4显示了WebWork的工作流程f16】。
}蹦ervletRequest 7i f w曲w。
出血nonc。
mextcIc彻砩 { I Other filters(Site№s h,ctc) .