【Java开源代码栏目提醒】:网学会员为广大网友收集整理了,基于Java_EEMVC架构的员工自助系统设计和性能分析 - 讲义教程,希望对大家有所帮助!
上海师范大学硕士学位
论文基于
Java EE/MVC架构的员工自助系统设计和性能分析别:硕士专业:计算机应用技术指导教师:李鲁群20090401摘要随着互联网技术突飞猛进地发展,基于B/S模式的多层Web系统得到了广泛的应用,像网上新闻,零售和金融网站等。
在Web应用系统的开发中,各种技术层出不穷,其中以JavaEE/MVC架构为主的应用开发已经成为主流模式。
在JavaEE/MVC架构的多层Web系统之中,表现层、业务逻辑层和数据持久层的实现方式多样。
正是使用了多层的体系架构使得这些Web系统变成了复杂的软件系统。
尽管越来越多的Web系统已经应用到现实生活之中,但是对于其性能方面的特性却很少涉及。
本文首先介绍JavaEE体系架构和MVC设计模式,接着讨论〕”Struts、Spring和Hibemate__三种
开源框架,具体分析了各个框架在Web应用的不同层次上所发挥的作用。
然后根据JavaEE的分层结构,结合Web应用的特点,整合了这三种框架,其中MVC模式的具体实现Struts主要负责表现层,完成页面显示、响应用户请求等功能;Spring主要负责业务逻辑层,完成应用系统的业务逻辑与事务处理等功能;Hibemate主要负责数据持久层,负责数据的持久化。
然后在此架构的基础上,设计实现了员工自助系统,详细说明了该架构在Web系统中的应用。
最后使用排队理论对本系统的行为模型进行了分析,描述出了该系统的性能特征。
并且使用了
开源软件JMeter进行了在线测试,得出了系统的性能模型。
关键字:JavaEE,MVC,Struts,Spring,Hibemate,排队论
论文类型:应用研究AbstractWith‘therapiddevelopmentoftheIntemettechnology,themufti??tierWebapplicationbasedonB/Shasbeenwidelyused,Webapplicationssuchasonlinenews,retail,andfinancialsiteshavebecomecommonplace.InthedevelopmentofWebapplication,theapplicationdevelopmentframeworkbasedonJavaEE/MVChasbecomeamainstream.Basedonthisframeworkofmulti-Websystem,themethodsofPresentationtier,businesslogictieranddatapersistencetierhavebecomevariety.DespitetheincreasingnumberofWebapplicationinuseeachday,littleisdefinitivelyknownabouttheirperformancecharacteristics.ThispaperfirstlyintroducesthearchitectureofJavaEEandMVCdesignpaaem.ThengivesdetailsofStruts,SpringandHibernate,andanalyseseachframework’SfunctioninWebapplicationtier.AccordingtotheJavaEEarchitectureandcombinedthecharacteristicsofWebapplication,thispaperdesignsJavaEEarchitectureofintegratingwiththethreeframeworks.Inthisarchitecture,Strutstakechargeofthepresentationtier,finishingpagedisplaysandrespondinguser’srequirements;Springtakeschargeofbusinesslogictier,completingthebusinesslogicandmanagementofapplicationprograms;Hibernatetakeschargeofdatapersistencetier,completingdatapersistence.Anexamplebasedonemployeeself-systemisintroducedtoillustratetheprocesstobuildaWebSystemwiththehelpofthearchitecture.Finally,Inordertodescribetheperformancecharacteristicsofthesystem,IhaveAppliedthequeuingtheorytothesystem.And,accordingtouseofopensourcesoftwareforonlinetesting,amodeloftheperformanceofthesystemhasbeenobtained.Keywords:JavaEE,MVC,Struts,Spring,Hibernate,QueuingTheory.II学位
论文独创性声明本
论文是我个人在导师指导下进行的研究工作及取得的研究成果。
论文中除了特别加以标注和致谢的地方外,不包含其他人或机构已经发表或撰写过的研究成果。
其他同志对本研究的启发和所做的贡献均已在
论文中做了明确的声明并表示了谢意。
作者签名:茵穷每日期:呷年夕月石日
论文使用授权声明本人完全了解上海师范大学有关保留、使用学位
论文的规定,即:学校有权保留送交
论文的复印件,允许
论文被查阅和借阅;学校可以公布
论文的全部或部分内容,可以采用影印、缩印或其它手段保存
论文。
保密的
论文在解密后遵守此规定。
作者签名:百彩孳日期:刎7年歹月%日导师签日期:年月日上海师范大学硕士学位
论文第l章绪论第1章绪论1.1课题背景、来源及意义1.1.1课题背景在当今信息爆炸的Intemet时代,知识就像原子裂变一样呈几何倍数不断翻新,人类社会在其推动下进入到了信息时代。
网络从这种意义上说,它已成为信息时代的缩影了。
伴随着互联网技术的蓬勃发展,以及在
经济全球化的推动下,我国企业迎来了跨越式发展的历史机遇。
企业迎来发展机遇的同时,也要面临严苛的挑战。
就我国企业当前的现状来看,不论是哪个行业,企业内部的管理都有可能遇到这样的问题:人力资源的管理网络化、人员资源变动的及时更新、以及管理效率的低下等等。
在激烈的市场竞争条件以及企业内外环境的压力下,企业传统的管理方式和落后的管理手段难以应付这些难题。
那么,可不可以找到一个好的解决方案呢?切实可行的途径就是引进先进的管理技术来实现企业信息化。
EI冲即企业资源计:怠JJ(EnterpriseResourcePlanning),是一套先进的
计算机管理信息系统,同时它也是当前企业改进管理和构成现代集成制造系统(CIMSContemporaryIntegratedManufacturingSystems)首选的系统软件。
它不仅代表了企业管理思想,还代表了一种新型的、集成的管理模式。
ERP之所以成为现代集成制造系统(CIMS)的重要组成部分,是因为它是将管理信息高度集成的。
目前ERP主要是以计算机软件为主要载体。
它的运用是从软件推广和使用开始的,并在企业推广流程信息化的进程中对企业管理模式进行整体重组和变革。
随着ERP的兴起,企业信息平台网络化工作也在加速发展,但是目前信息平台技术与标准还没有到成熟期,也没有出现完全能够适应所有信息平台的设计方案,为了进一步推动信息平台的发展,必须研究开发适应新时代的基于Web应用的信息平台,以提升企业的效益,提高管理的效率。
所谓的Web信息平台就是基于网页的应用系统,用户不需要安装任何专用程序,仅通过浏览器便可访问服务资源,人们通过浏览网页的形式就可以实现其想要做的事情。
这种类型的程序开发模式称为浏览器/服务器(B/S)模式。
Web应用的主要事务逻辑是在应用服务器上实现的,客户端仅需要浏览器进行业务处理,减少了客户端的压力,可以认为这是一种瘦客户端的架构。
这种软件系统结第1章绪论上海师范人学硕十学位
论文构已经成为当前应用软件的首选程序开发模式。
由上可以看出,基于B/S架构的企业信息平台的设计对于企业信息网络化有着重要的应用背景,正是在上述背景下,本课题开展了企业员工白助系统的设计与性能方面的研究,具有非常积极的意义。
1.1.2课题来源本课题来源于上海市计算技术研究所为日本电信公司开发的员工自助系统(ESS)项目。
作为该项目的一部分,本课题就高效的系统架构设计和性能方面进行了研究。
本系统已经部署在日本电信公司了,并且运行良好,因此,课题具有一定的应用价值。
1.1.3课题意义本课题主要目的是设计并实现基于JavaEE/MVC架构的员工自助系统,从目前国内外的研究现状来看,具有一定的理论和现实意义:一、理论意义:基于B/s架构的Web应用系统开发有着比较完善的理论基础和实现技术,但是如何选择合适的实现技术来设计与实现,这就与具体的应用环境密切相关。
如何确定自己选择的实现技术是合理的、有效的,这个选择过程对于系统的开发有一定的理论指导意义。
二、现实意义:Web应用系统性能分析是一个十分有挑战性的工作。
深入分析和剖析系统的深层次的内容,分析出系统性能的微观特性,得出系统负荷能力。
可以指导我们在今后的开发过程中少走许多的弯路,能够一针见血的直接定位到系统的性能本质,可以达到举一反三的目的,该课题也有一定的现实意义。
1.2课题的研究内容.本
论文着眼于对基于JavaEE/MVC设计模式的员工自助系统,并对其性能进行了分析,为构建高效的Web应用系统提供参考,主要工作集中在如下方面:(1)通过对国内外实现方案以及性能方面的研究,分析对比分析了各种实现技术的特点和不足之处,提出了自己的解决方案。
上海师范人学硕十学位
论文第1章绪论(2)对企业员工自助系统的主要业务进行了介绍,并对系统架构进行了分析,进一步解析各层次的功能,具体介绍系统架构和
开源框架在实现该Web应用系统中所起的作用和各个
开源框架之间的整合。
(3)就安全功能模块和赴任津贴申请模块为例说明了系统的具体实现过程。
(4)运用排队理论对Web系统的性能进行分析,并通过在线测试的实验数据建立了性能模型。
1.3
论文的结构安排本
论文的组织结构如图卜1所示。
图1-1
论文结构图第一章通过对课题目的、意义的概述以及对相关研究发展概况的综述,提出了本文研究的主要内容,最后说明了文章的组织情况;第二章主要是对员工自助系统国内外现状的研究。
分析对比分析了各种实现技术的特点和不足之处,提出了自己的解决
方案第三章介绍了文章基于的研究项目的大体情况和系统架构方面的设计,以及Struts、Hibernate和Spring框架的整合过程。
第四章论述了安全功能模块的设计,并就系统的相关数据库表的设计进行了简单介绍,然后以安全功能模块和申请书模块的实现为例说明了实现系统的具体过程:根据安全功能模块的设计实现了基于组访问控制的安全策略;根据系统架构的设计特点论述了申请书模块在各个层次结构中的实现过程以及各个层次之间的调用关系。
第五章使用排队理论来分析该Web系统,通过设计实验来测试系统的性能,最后对实验数据进行分析,利用统计学的回归分析得出了性能模型。
第六章总结了
论文的研究
工作并展望了下一阶段的工作方向。
第1章绪沦上海师范大学硕一Ij学位
论文1.4小结文章首先介绍了本课题的相关研究背景,通过对课题目的、意义的概述以及对当前研究现状的分析,提出了本文研究的主要内容,文章最后概要交代了
论文的基本组织情况。
4上海师范大学硕士学位
论文第2章国内外现状的研究与比较第2章国内外现状的研究与比较2.1实现方案的比较与分析从技术角度来看,目前国外相关产品主要采用Sun公司的Java技术平台,还有Microsoft公司的.net技术平台。
相比之下,Sun的Java技术平台以其
开源框架的低成本而风靡软件领域。
表2.1比较了Java不同版本的相同与不同之处:表2-1Java版本的比较版本名运行环境类库范同应用领域Java语言全部特性和企业计算的各JA、,EEEJAVA虚拟机服务器程序种编程接口和规范JAVESEJAVA虚拟机Java语言全部特性台式机JAVEMEJAVA虚拟机Java语言核心类和支援的扩充类嵌入式和移动设备文献【7】比较了基于B/S架构的应用系统与基于C/S架构系统的优缺点。
虽然相比于C/S架构的一层交互,B/S架构的多层交互响应速度明显比不上;同时相比于C/S系统运行在局域网环境,B/S架构的广域网环境安全性要求更高。
B/S架构在项目的维护和
代码的可重用性方面有自己的优势,同时可以直接放在广域网上。
本项目需要搭建在广域网中,项目的维护和
代码的可重用性也是非常重要的,这样B/S架构比C/S架构就更有优势。
这样结合JavaEE技术和B/S架构是一个非常适合本系统的开发模式。
学者宋伟等人在文献〔14】中提出了用JSP+Servlet模式开发小型Web应用系统。
这种开发模式是以JSP为中心的,业务逻辑和表示逻辑没有分离和抽象,而是混杂在JSP页面之中。
随着程序功能的增加,其功能模块之间的高耦合暴露无疑。
基于此情形,文献【111提出了将业务逻辑和表示逻辑进行分离和抽象的Struts框架,Struts实现了MVC(模型一视图一控制器)的前端控制器模式。
文献【10】提出了更加简单的MVC的实现方式——页面控制器。
学者刘羽飞等人在文献【15】中使用了MVc模式Struts框架结构来设计具体的Web系统,通过在表现层实现MVC的前端控制器模式。
在文中是直接通过JDBC5第2章国内外现状的研究与比较上海师范人学硕十学位
论文(JavaDataBaseConnectivity)编程来访问数据库,虽然运行效率高,但是在Java程序
代码中嵌入大量的SQL语句,这样数据存取逻辑和业务处理逻辑混杂在一起,
代码逻辑复杂,增加了维护的难度。
为了分离数据存取逻辑和业务处理逻辑,文献〔18】中提出了关系数据库和面向对象的
设计目标不同而导致了对象和关系模式之间的差异,从而引出了对象/关系映射框架Hibernate。
关系数据库是为了管理数据而设计的,而面向对象是为业务问题建模而设计的。
故将对象转化为关系模型时就会遇到了对象/关抗系阻不匹配的问题。
其表现在:(1)与相同有关,对象可以相同或者相等:两个对象相同,则它们是同一个对象;两个对象相等,则它们包含相同的值。
这两种概念在关系模型中并不存在。
(2)对象之间存在继承和关联关系,而在数据库中,关系数据无法直接表达继承和多对多关联的关系。
Hibernate最主要的目的就是为了解决对象/关系阻抗不匹配的问题。
文献〔16】中提出了Struts+Hibernate框架结构来实现基于B/S架构的教务
管理系统,将对于数据库表的操作转化成了对POJO对象的操作。
但是这种情形下,系统没有提供了一种管理对象的统一方法,也没能把POJO对象有效地组织起来,同时随着软件规模的增大,非功能模块和功能模块间的高度耦合
问题也呈现出来了。
下面提出两种解决方式:.(1)文献【1】提出的解决方案EJB(EmerpriseJavaBean)机制,能够解决部分问题,但是其存在不足之处:对
代码有一定侵入性,对设计有一定侵入性。
(2)文献〔24】提出的解决方案Spring,相对于EJB而言,是一个轻量级(Lightweight)的容器,实现了非浸入性(Nointrusive)——让应用程序几乎感受不到框架的存在。
文献【25】〔26】提出的依赖注入解决了系统功能模块问的依赖性,而面向方面编程是对面向对象的补充,解决了非功能模块和功能模块间的高度耦合问题。
文献【10】中提出7”Struts、Hibemate、Spring框架结构来进行JavaWeb应用开发。
表2.2从耦合度、复用性、可维护性、可扩展性等方面比较上述学者提出的实现技术i表2~2实现技术比较上海师范大学硕士学位
论文第2章国内外现状的研究与比较实现技术耦合度MVC实现复用性可维护性可扩展性使用范同JSP+Servlet高MVCl低难低小型项目小型和中Struts+Hibemate中MVC2由中中型项目Struts+Hibernate低MVC2高高高大型项目+Spring2.2性能方面的研究现状尽管越来越多的Web系统已经应用到现实生活之中,但是对于其性能方面的特性却很少涉及。
由于使用了多层的体系架构使得这些Web系统变成了复杂的
软件系统。
这个复杂的软件系统提供的服务内容常常需要执行程序动态生成,处理过程复杂‘引。
在JavaEE的实际应用中,尤其是基于Web的应用系统中,性能方面并不尽如人意。
这主要有三方面的原因:(1)JavaEE的分布式计算环境给系统的性能带来了许多新的问题和挑战;(2)如今的系统开发更注重良好的体系结构,易于扩展和维护等特性,而往往忽视了
系统的性能问题;(3)系统中的不确定性因素,包括事务处理、资源竞争、并发访问、组件失效以及随机调度等,会影响系统的性能。
国外学者对于Web应用
程序的研究主要集中在排队理论和排队
网络模型上面。
文献〔27】使用了一个分层排队网络来分析W-eb服务器;文献〔4】就多层Web应用程序提出了一个基本排队模型扩展的模型,在这个模型是将一个应用看成是一个M层的排队网络。
文献【36】使用了一个抽象的M/G/1处理器共享队列来代表整个三层架构系统。
国内学者对于Web应用程序性能的研究主要集中性能优化和建立性能模型,文献〔37〕就Web应用系统性能的整体性进行了研究。
文献〔5】提出了在不同负载模式下,在线评估动态Web系统性能模型的思想。
2.3小结综合国内外研究情况来看,以JavaEE技术为代表的
开源框架在Web应用系统中得到越来越广泛的应用。
同时基于Struts、Hibernate、Spring框架结构的Web第2章国内外现状的研究与比较上海师范人学硕+学位
论文开发模式能够降低耦合度,提高
代码的可重用性,减少维护的成本,增强系统的可扩展性,并且能够应用到大型项目的开发之中。
正是这个结合的上述优点,本系统采用的是基于Struts、Hibernate、Spring框架结构的四层体系结构。
同时本系统在安全性方面加入自己,尽量削弱B/S架构在这个方面的不足,对于响应速度方面的提高可以通过性能测试来调节。
8上海师范大学硕十学位
论文第3章员r自助系统的分析与总体设计第3章员工自助系统的分析与总体设计3.1系统陈述我所完成的WEB应用系统是日本电信公司委托上海市计算技术研究所开发的员工自助系统(ESS),该系统是企业ERP系统的一个子系统。
该系统是对企业员工信息管理的标准化打包系统,主要实现了企业员工个人信息网络化自助管理、企业人事变动管理、企业人力资源决策管理、社会保险福利网络管理等功能。
该系统的主要功能要包括:员工年末调整申请、员工基本信息变更(身上异动)申请等部分。
同时与Attendance、Payslip等公司其他子系统连接进行一些实时业务的处理。
系统结构如图3.1所示:HOST给与甜算赏与言f算社会保险年末调褴图3-1系统结构图3.2系统功能模块介绍及业务流程3.2.1模块概述该系统是对公司员工的自助管理,因而员工就是系统的主要成员,员工根据自己的职责可以划分为不同的级别,该系统的员工可以分成一般社员、管理者和担当者三种。
系统的用例图如图3.2所示。
9第3章员l:自助系统的分析与总体设计上海师范人学硕士学位
论文图3-2系统用例图由图3—2可以知道该系统的功能模块包括:用户登录模块、年末调整、申请员工自助基本信息变更(身上异动)申请、管理者机能、公共业务、与社宅和搬家相关的内容等,下面分别加以说明。
(1)用户登录模块首先根据用户输入用户名和密码登录系统,再根据用户的公司
代码和用户
代码来判断用户所属的组,进而确定用户的类型:一般社员、管理者还是担当者,不同的用户类型具有不同的访问权限,图3.2不仅显示系统用例还给出各个不同用户拥有的访问权限。
该方面的具体设计与实现将在下一章中介绍。
(2)社员密码更改一般社员、管理者和担当者一旦登录系统就可以更改原始密码,原始密码是由最早的管理者设定的,每个用户的原始密码基本上是有规律的,并通过Email的形式发给上述用户的。
因而原始密码是必须要进行修改的。
(3)年末调整年末调整功能足通过申请的方式来实现的。
对于一般社员来说,可以提出“新年度抚养变更申请”、“保险变更年末调整申请”、“抚养变更年末调整申请”;10上海师范大学硕十学位
论文第3章员j〔自助系统的分析与总体设计对于管理者来说,他们会比一般社员要多两个子功能“申请书检索”和“年末调整申请书浏览”。
(4)员工自助基本信息变更员工自助基本信息变更也是通过申请的方式来完成的。
对于一般社员来说,员工自助基本信息变更功能可以划分为:“家族变更申请”、“入住社宅申请”、“氏名变更申请”、“搬家(本人??家族)申请”、“住所变更申请”、“社宅开始使用申请’’、“通勤变更申请”、“银行信息变更申请”、“社宅归还(本人??家族)申请”、“赴任津贴申请”、“回家探亲申请”、“本人申请书浏览”(可以浏览、修改、删除未发送的申请书)14个子功能;对于管理者来说,他们也可以作为一般社员的身份来完成上面提到的14个申请,并且还可以给一般社员代理完成“银行信息变更申请”、“入住社宅申请”、“搬家(本人??家族)申请”、“社宅开始使用申请”、“社宅归还(本人??家族)申请”、“赴任津贴申请”、“回家探亲申请”7个申请。
(5)与社宅和搬家相关的内容该模块是针对于管理者和担当者的,即管理者和担当者可以对与社宅和搬家相关的申请书进行承认和退回操作。
(6)管理者机能该模块是针对管理者而言的,包括“代理申请”、“与申请书关联的业务”(包含“申请书检索’’和“全部申请书浏览”子模块)、“系统管理”模块。
(7)公共业务该模块是管理者和一般用户的公共的业务事项,包括“Email的更改”、“申请书表格的下载’’子模块。
除了上面介绍的功能模块以外,本系统还包含了非功能模块,比如日志管理、事务管理等。
这些非功能模块和功能模块是交织一起的,为了提高
代码的重用性,有必要将这些非功能提取出来统一管理。
然后通过横向切入到各个功能模块之中,这样降低了程序的耦合度,使得功能模块只专注于主要功能业务的实现,不用再关注非功能的具体实现,从而提高了
代码的可重用性。
第3章员lj自助系统的分析与总体设计上海师范大学硕十学位
论文3.2.2业务流程从上面的系统功能模块的概述,可以看到系统主要的业务就是关于申请书的业务。
该业务流程如图3.3所示。
图3-3业务流程图由图3.3可知,申请业务主要由下面五个流程来完成:①“保存”:由社员自己执行,只存入数据库(DB)中,不发送给管理者或担当者;②“删除”:由社员自己执行,对于存入数据库的内容删除该条记录,对于未存入数据库的内容删除申请书ID,不发送给管理者或担当者;③“申请”:由社员自己执行,不仅存入数据库(DB)中,同时修改申请书的状态,还发送给管理者或担当者;④“承认”:由指定的管理者或担当者执行,同时修改申请书的状态,还将给社员发送“承认完了”的处理通知。
⑤“退回”:由指定的管理者或担当者执行,同时修改申请书的状态,还将给社员发送“退回”的处理通知。
12上海师范人学硕+学位
论文第3章员丁自助系统的分析与总体设计3.3系统结构分析与设计3.3.1系统架构本系统采用的是一个典型的基于B/S结构的分布式Web应用模式。
按照传统、的模式,系统可分为4个层次:客户端、Web,层、业务逻辑层和数据库层。
表3.1比较了各层次的职责和工作区域。
表3.1层次结构比较层次名称职责工作区域客户端负责页面的显示在客户机浏览器之上负责对客户端访问请求的集中处理和信Web层在Web容器之中息发布负责业务逻辑程序的集中处理,可以根据业务逻辑层在EJB容器中其处理得具体业务不同而分为多个数据库层主要负责数据的存储和组织在具体的数据库之中软件系统被分成许多模块,各个模块之间相互作用,组合成能表现出整体方面的属性,就具有了体系结构。
我们可以把软件比作一座楼房,从整体上讲,它有基础、主体和装饰,即操作系统之上的基础设施软件、实现计算逻辑的主体应用程序、方便使用的用户界面程序。
体系结构就是软件系统的基础部件,之所以体系结构作为处理软件质量是比较合适的概念,是因为软件体系结构为最终系统的软件质量的好坏设置了标准。
所以一个可伸缩的、高效的体系结构是构建高效Web应用系统的基础。
基于上述原因,为了提高系统的可扩展性,并且要减少层与层之间的耦合度,因而有必要对传统的层次结构进行进一步的细分,特别是层次结构中的中间层次。
故在设计的时候在业务逻辑层和数据库层之间增加了数据持久层。
其系统的层次结构图如图3.4所示。
第3章员r自助系统的分析与总体设计上海师范人学硕士学位
论文(客户端浏览器Browse一)OStruts实现Web表现层ActionJSPActionForm夕nSpring实现业务层业务服务事务处理、。
/nHibernate实现持久层POJOD∞〕/。
jE,一—一—、、\,/数据库、、一—,/图3-4系统层次结构图该系统结构的表示层、持久层、业务层分别采用目前轻量级架构中的Struts技术、Hibernate技术和Spring技术来实现。
使用fitStruts、Hibernate和Spring整合而成的架构,设计的目标是要提供一个简洁的,功能完善的Web框架,提高组件的可复用性,降低层与层之间的耦合度,有利于系统的可扩展性和可维护性等。
Struts作为系统的整体基础架构,它负责表现层中模型.视图.控制器模式的分离;Hibernate负责提供持久化服务,Spring作为轻量级容器来管理业务逻辑和事务处理。
具体做法是:依据项目的需求通过使用面向对象的分析方法提出一个模型,将这些模型采用Java语言设计出基本的Java对象,然后写出基本的DAO实现和Hibernate的级联实现,采用Hibernate框架实现的DAO类以及级联方式来实现Java类与数据库之间的转换和访问,然后Spring来完成业务逻辑处理和事务处理。
表示层可通过页面模型(Form)、视图(view)、控制器(ActionServlet)和Spring配置文件等来实现,数据持久层主要由对象.关系映射文件、Spring配置文件和DAO类等来实现。
整合后的系统架构图如图3.5所示。
14上海师范人学硕十学位
论文第3章员.1:自助系统的分析与总体设计图3.5系统架构图3.3.2框架整合及整合后的工作流程一、Struts与Spring的整合Struts与Springl拘整合过程就是在Struts框架中装载Spring应用环境,即使用Spring的ComextLoaderPlugin为StIuts的ActionSeⅣlet装载Spring应用环境。
该插件是在Struts应用启动时被初始化的,在应用关闭时就被销毁了。
一般是在Struts的配置文件Struts—config.xml中添加该插件的内容,同时可以继承ContextLoaderPlugin类,如下所示:<plug-inclassName=”corn.eSS.struts.biz.common.BulasContextLoaderPlugln”><set—propertyproperty=”contextConfigLocation”value=”/WEB-INF/classes/applicationContext.xml”伊//Spring配置文件</plug—in>//com.ess.struts.biz.common包。
l”BulasContextLoaderPlugln.
java文件片断publicclassBulasContextLoaderPluglnextendsContextLoaderPlugln{……)然后使犀〕Spfing的DelegatioI氓equestProcessor覆盖掉Struts的RequestProcessor处理程序,从而达成TSpring把动作从其中分离出来的目的。
该配置文件也可在第3章员工自助系统的分析与总体没计上海师范人学硕士学位
论文Struts-config.xml中完成,
代码如下所示:<controiler>processorClass=”corn.eSS.struts.biz.common.BulasRequestProcessor’’bufferSize=’’4096’’</controller>//tom.eSS.struts.biz.common包一l-’BulasRequestProcessor.
java文件片断publicclassBulasRequestProcessorextendsDelegationRequestProcessor{……}最后就是具体的动作Action。
只要在Struts中添加一个Action,就需要在Spring中添加一个和该Action同名的bean。
上述就是Struts与Spring的整合过程了。
二、Spring与Hibemate的整合Spring能很好的与Hibernate进行整合,基本方法就是对Hibernate的SessionFactory进行整合。
配置文件中的SessionFactory节点包含了对SessionFactoryI拘所有配置信息,其中dataSource属性指定了引用的数据源,mappingDirectoryLocations属性包含了模型文件的路径。
同时Hibernate的事务管理器实tEHibemateTransaetionManager,来对Hibernate会话进.