(管理科学与工程专业论文)JavaEE多层架构Struts2Spring3Hibernate3Ajax的整合.pdf_第1页
(管理科学与工程专业论文)JavaEE多层架构Struts2Spring3Hibernate3Ajax的整合.pdf_第2页
(管理科学与工程专业论文)JavaEE多层架构Struts2Spring3Hibernate3Ajax的整合.pdf_第3页
(管理科学与工程专业论文)JavaEE多层架构Struts2Spring3Hibernate3Ajax的整合.pdf_第4页
(管理科学与工程专业论文)JavaEE多层架构Struts2Spring3Hibernate3Ajax的整合.pdf_第5页
已阅读5页,还剩84页未读 继续免费阅读

(管理科学与工程专业论文)JavaEE多层架构Struts2Spring3Hibernate3Ajax的整合.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着软件开发技术的发展,可复用、易扩展的而且经过良好测试的软件组件, 越来越为开发者所青睐。其中最受人们关注的是s t r u t s 、s p r i n g 和h i b e r n a t e 框架。 随着w e b 2 0 时代的到来,a j a x 技术带给了用户更高的客户体验,a j a x 框架受人 瞩目成为必然。设计一个基于m v c 模式的s s h + a j a x 框架非常具有现实意义。 m v c 模式分离了数据访问和数据表现给系统提供了更好的解耦,在实现多层 w e b 应用系统中具有明显的优势。s t r u t s 2 是一个基于m v c 模式并且成熟的实现了 控制器层和w e b 表现层的集大成者的框架,它不但提供了灵活自然的控制器分配 方式,而且提供了强大的标签表示技术,并且为其它框架的整合预留了方便的接 r 。s p r i n g 主要基于l o c 和a o p ,很容易实现b e a n 的装配和事务管理等特性;同 时它对不同的数据访问技术提供了统一的接口。h i b e r n a t e 框架是一个面向j a v a 环 境的对象关系数据库映射工具。它不仅可以管理j a v a 类到数据库表的映射,还提 供数据查询和获取数据的方法,可以大幅度减少开发时开发者使用s q l 和j d b c 处理数据的时间。a j a x 框架能够使应用开发人员更好的解决企业级应用的灵活开 发,增加开发的满意度,解决在s t r u t s 框架或者s p r i n g 框架中的不足,从而更完 美地完成软件开发任务。 本论文在深入研究各个框架系统理论和设计模式的基础上,主要针对当前开 发模式中表示层与业务逻辑层、业务逻辑层与数据持久层之间不能完全分离,设 计了基于m v c 模式的一套框架,该框架以s t r u t s 2 ,s p r i n 9 3 ,h i b e r n a t e 3 为主,a j a x 为辅,引入了s p r i n g 的l o c 技术和j a v a 5 的新特性a n n o t a t i o n 。通过i o c 技术的 引用,降低了系统模块之间的依赖性。通过在p o j o 类使用a n n o t a t i o n 技术,大大 降低了系统的代码量以及提高了系统的开发效率,并且通过s t r u t s 2 把a o p 思想引 入到企业级应用的开发中,分离了业务逻辑代码和基础业务代码( 交叉业务代码) , 提高了系统代码的可复用性,可维护性和可读性,解决了代码的分散混乱的问题。 最后以大连鑫轮模具公司实际的e r p 项目为例,对整合的架构应用进行具体的实 现。开发结果表明,整个系统具有平台无关性,并提高了应用系统的灵活性,可 维护性,可扩展性,可移植性和组件的可复用性。 关键词:s t r u t s 2 :s p r i n g :h i b e r n a t e :a j a x la n n o t a t i o n :l o c :a o p a b s t r a c t w i t ht h ed e v e l o p m e n to fs o f t w a r et e c h n o l o g y ,r e u s a b l e ,s c a l a b l ea n de a s yt o w e l l t e s t e ds o f t w a r ec o m p o n e n t s ,a r em o r ea n dm o r ep o p u l a rf o rd e v e l o p e r s i nw h i c h t h em o s tp o p u l a ra r es t r u t s ,s p r i n ga n dh i b e r n a t ef r a m e w o r k s h o w e v e r ,w i t ht h e c o m i n go fw e b2 0e r a ,a j a xt e c h n o l o g i e sb r i n go u re n t e r p r i s e sd e v e l o p e r sah i g h e r c u s t o m e rs a t i s f a c t i o n i ti si n e v i t a b l et h a ta j a xf r a m e w o r ki sa t t e n t i o n ,t h e r e f o r et h e d e s i g no fs s h + a j a xf r a m e w o r kb a s e do nm v cm o d e li sav e r yp r a c t i c a ls i g n i f i c a n c e m v c p a t t e r n ,w h i c hs e p a r a t e dt h ed a t aa c c e s sl a y e ra n dd a t ap r e s e n t a t i o nl a y e r , p r o v i d e sab e t t e rd e c o u p l i n ga n d ad i s t i n c ta d v a n t a g ei nt h er e a l i z a t i o no fm u l t i l a y e r e d w e ba p p l i c a t i o n s s t r u t s 2i sa ne x c e l l e n tr e a l i z a t i o nb a s e do nt h ec o n t r o l l e rl a y e ra n d t h ep r e s e n t a t i o nl a y e ro fm v cp a t t e r n a n di tn o to n l yp r o v i d e saf l e x i b l ea n dn a t u r a l w a yo ft h ec o n t r o l l e rd i s t r i b u t i o n ,a n da l s op r o v i d e sap o w e r f u ll a b e lp r e s e n t a t i o n t e c h n o l o g y ,a n ds e t sa s i d ei n t e r f a c e sf o ro t h e rf r a m e w o r k si n o r d e rt oi n t e g r a t e f a c i l i t a t e s p r i n gi sa n o t h e re x c e l l e n tf r a m e w o r km a i n l yb a s e do nt h et h i n k i n go fl o c a n da o p i ti se a s yt oa c h i e v et h ea s s e m b l yo f j a v ab e a na n dt r a n s a c t i o nm a n a g e m e n t , a n da tt h es a m et i m el t p r o v i d e s au n i f i e di n t e r f a c ef o rd i f f e r e n td a t aa c c e s s t e c h n o l o g y h i b e r n a t ef r a m e w o r ki sa no r m ( o b j e c t r e l a t i o n a lm a p p i n g ) t 0 0 1 i tn o t o n l yc a nm a n a g et h ej a v ao b j e c t sm a p p e dt od a t a b a s et a b l e s ,a l s op r o v i d e sm e t h o d so f d a t aq u e r ya n da c c e s st od a t a ,w h i c hc a ns i g n i f i c a n t l yr e d u c et h et i m eo fu s i n gs q la n d j d b ct e c h n o l o g yt oa c c e s st od a t am a n u a l l y a j a xf r a m e w o r kp r o v i d e su sab e t t e ra n d m o r ef l e x i b l ed e v e l o p i n gi nt h ee n t e r p r i s ew e ba p p l i c a t i o n s ,a n di ta l s oc a ni n c r e a s et h e d e v e l o p m e n to fs a t i s f a c t i o na n dw o r ko u tp r o b l e m si nt h es t r u t sf r a m e w o r ko rs p r i n g f r a m e w o r ki no r d e rt oc o m p l e t es o f t w a r ed e v e l o p m e n t t h i sp a p e r ,b a s e do ni n - d e p t hs t u d yo ft h ev a r i o u sf r a m e w o r k s s y s t e mt h e o r ya n d d e s i g np a t t e r n s ,a i m i n ga tt h a tp r e s e n t a t i o nl a y e ra n db u s i n e s sl o g i cl a y e r ,b u s i n e s s l o g i cl a y e ra n dd a t al a y e r sc a nn o tb ec o m p l e t e l ys e p a r a t e d ,w i l ld e s i g naf r a m e w o r k b a s e do nm v c ,w h i c hm a i n l yi n s t r u t s 2 ,s p r i n 9 3 ,h i b e r n a t e 3f r a m e w o r k ,a j a x f r a m e w o r ka sas u p p l e m e n t ,a n di n t r o d u c e ds p r i n g si o ct e c h n o l o g ya n da n n o t a t i o n t e c h n o l o g yi nj a v a5 sn e wf e a t u r e s i t r e d u c e st h ed e p e n d e n c yb e t w e e nm o d u l e s t h r o u g ht h eu s eo fl o ct h i n k i n g ,a n dg r e a t l yr e d u c e sa m o u n t so fa p p l i c a t i o nc o d e s , i m p r o v et h ee f f i c i e n c yo ft h ea p p l i c a t i o nt h r o u g ht h eu s eo fa n n o t a t i o nt e c h n o l o g yi n p o j o i tw i l lb r i n gt h et h i n k i n go fa o pi ns t r u t s 2t ot h ed e v e l o p m e n to fe n t e r p r i s ew e b a p p l i c a t i o ni no r d e rt ot h es e p a r a t i o no fb u s i n e s sl o g i cc o d ea n dt h eb a s i co p e r a t i o n a l c o d e ( c r o s s b u s i n e s sc o d e ) ,i m p r o v et h es y s t e mc o d er e u s a b i l i t y ,m a i n t a i n a b i l i t ya n d r e a d a b i l i t y ,f i n a l l yw ew i l lu s et h i si n t e g r a t e df r a m e w o r kt oc o m p l e t ea na c t u a le r p p r o j e c to nd a l i a nx i n l u ne n t e r p r i s e t h er e s u l ts h o w st h es y s t e md o e sn o td e p e n do n p l a t f o r ma n dh a st h e c h a r a c t e r i s t i c so fh i g hm a i n t a i n a b i l i t y ,e x p a n s i b i l i t ya n d r e u s a b i l i t y k e yw o r d s :s t r u t s 2 ;s p r i n g ;h i b e r n a t e ;a j a x ;a n n o t a t i o n ;l o c ;a o p - 2 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成硕士学位论文 竺垒y 垒星里垒屋袈构s ! 盟堡2 s 乜西坠酸丛i 垒曼婴墅曼兰i 丛鲍鳌 丛。除论文中已经注明引用的内容外,对论文的研究做出重要贡献的个人和集 体,均已在文中以明确方式标明。本论文中不包含任何未加明确注明的其它个人 或集体已经公开发表或未公开发表的成果。本声明的法律责任由本人承担。 学位论文作者签名:三重瑾l 哪 学位论文版权使用授权书 本学位论文作者及指导教师完全了解大连海事大学有关保留、使用研究生学 位论文的规定,即:大连海事大学有权保留并向国家有关部门或机构送交学位论 文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将本 学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫 描等复制手段保存和汇编学位论文。同意将本学位论文收录到中国优秀博硕士 学位论文全文数据库( 中国学术期刊( 光盘版) 电子杂志社) 、中国学位论文全 文数据库( 中国科学技术信息研究所) 等数据库中,并以电子出版物形式出版发 行和提供信息服务。保密的论文在解密后遵守此规定。 。嘴并努 j a v a e e 多层架构s t r u t s 2 + s p r i n 9 3 + h i b e r n a t e 3 + a j a x 的整合 第1 章绪论 1 1 课题背景及意义 j a v a e e 多层架构是目前流行的w e b 应用开发架构之,已成为解决电子商务 和企业级应用的标准平台。但这个平台并不能满足所有需求特点,其中的业务逻 辑层的解决方案e j b 机制存在过度设计的缺陷,而且e j b 的机制是一种针对代码 和设计强侵入性的规范,使业务组件移植不是很方便。e j b 制订了很多的接口和编 码规范,要求实现者遵守,这样就导致了业务逻辑移植困难,成本较高。伴随着 软件开发技术的发展,在多层的软件开发项目中,可复用、易扩展的而且是经过 良好测试的软件组件,越来越为开发者所青睐。这意味着开发人员可以将充裕的 时间用来分析、构建业务逻辑的应用,而非繁杂的代码工程。于是开发人员将相 同类型问题的解决途径进行抽象,抽取成个个应用框架。用这些框架构建的分 布式应用程序完美地实现了应用程序高内聚、低耦合、高弹性、易维护的优点。 其中最受人们关注的是s t r u t s 、s p r i n g 和h i b e r n a t e 框架。但是随着w e b 2 0 时代的 到来,a j a x 技术带给了用户更高的客户体验,a j a x 框架受人瞩目成为必然。因此 设计一个基于m v c 模式的s s h + a j a x 框架非常具有现实意义。 s t r u t s 是m v c 模式的实现框架,它由一系列框架类、辅助类和定制的j s p 标 记库构成,为m o d e l 2w e b 应用开发提供一个强大的、通用的w e b 应用框架,从 整体上减轻构造企业w e b 应用的负担。s p r i n g 是一个服务于所有层面的应用框架, 允许开发者根据需要选择使用它的部分模块。s p r i n g 主要基于i o c ( h v e r s i o no f c o n t r o l ,控制反转) 和a o p ( a s p e c to r i e n t e dp r o g r a m m i n g ,面向方面编程) ,很容易 实现b e a n 的装配和t r a n s a c t i o nm a n a g e m e n t ( 事务管理) 等特性;同时它对不同的数 据访问技术提供了统一的接口。h i b e r n a t e 框架是一个面向j a v a 环境的对象关系 数据库映射工具。它不仅可以管理j a v a 类到数据库表的映射,还提供数据查询和 获取数据的方法,可以大幅度减少开发时人工使用s q l 和j d b c 处理数据的时间。 它可以在应用e j b 的j a v a e e 架构中取代c m p ( c o n t a i n e r m a n a g e dp e r s i s t e n c e ) ,完 成数据持久化的重任。a j a x 是一种客户端方法,可以与j a v a e e ,n e t 等脚本语 第1 章绪论 言进行交互,是一种真正的能够实现与服务器无关的技术,使用a j a x 框架能够更 好的解决w e b 应用的灵活开发,增强客户使用体验,增加客户开发满意度,解决 在s t r u t s 框架或者s p r i n g 框架中的不足,从而更好地完成软件开发任务。 随着系统规模的日益复杂,为了快速提高开发效率,将一些优秀的框架进行 整合以适应不同的应用需求己成为目前系统开发中流行的方向之一。 框架是一种针对特定领域,基于架构的、解决某类应用问题的半成品,是大 粒度的复用,它为w e b 应用开发提供了一个能够使用的架构模板和软件包,让开 发从编码中解脱出来,将注意力主要集中在业务逻辑分析上,从而减轻了开发者 处理复杂问题的负担,提高了工作效率;其次开发者在分析框架的基础上,可以 对其进行改进和扩展,以适应实际应用的需求。因此也为扩展和维护系统奠定了 良好的基础。 本文研究的目的是提出一个新型的框架体系,用以克服j a v a e e 架构的w e b 多层应用解决方案中存在的一些缺点,使其能够最大限度地满足符合企业级应用 软件系统需求特点的开发方法。研究的意义在于:通过j a v a e e 多层架构中w e b 表现层、业务逻辑层和数据持久层的四个优秀的框架,充分发挥每个框架的优势, 以实现: ( 1 ) 复用设计,以简化开发的复杂性; ( 2 ) 复用代码,减少编码和测试时间,提高工作效率; ( 3 ) 提高系统的可扩展性、可维护性和可移植性; ( 4 ) 降低层间的耦合度; ( 5 ) 提高系统开发的灵活性,增加客户体验,提高客户满意度。 这种整合框架具有很强的生命力。但应该同时看到,虽然这种整合框架的思 想很好,但是发展的时间较短,还不是很成熟,与j a v a e e 架构相比,还有不足之 处,所以应该与j a v a e e 架构的优势结合起来才能产生更好的效果。 1 2 国内外研究现状 当前,在国内外存在多种实现w e b 应用系统的技术途径,其中最具有代表性、 使用最广泛的两大类分别是m i c r o s o f t 公司提出的n e t 平台和s u n ,m m 等公司 j a v a e e 多层架构s t r u t s 2 + s p r i n 9 3 + h i b e r n a t e 3 + a j a x 的整合 提出的j a v a e e 平台。 j a v a e e 是一个基于组件的容器模型的系统平台,其核心概念是容器。容器是 指特定组件提供服务的一个标准化的运行时环境,j a v a 虚拟机就是一个典型的容 器。组件是一个可以部署的程序单元,它以某种方式运行在容器中,容器封装了 j a v a e e 底层的a p i ,为组件提供事务处理、数据访问、安全性、持久性等服务。 在j a v a e e 中,组件和组件之间并不直接访问,而是通过容器提供的协议和方法来 相互调用。组件和容器间的关系通过“协议 来定义。容器的底层是j a v a e e 服务 器,它为容器提供j a v a e e 中定义的各种服务和a p i 。 由于j a v a e e 的开放性,有很多公司和开发者汇聚在一起推动着j a v a e e 技术 的发展,开源产品众多,源代码的普遍开放,使得j a v a e e 技术得到了迅速的发展, 出现了各种各样的开发框架。首先是s u n 公司推出的e j b 规范,并在其基础上推 出的j a v a e e 多层架构,然后是s t r u t s 、w e b w o r k 、t a p e s t r y 、s p r i n g 、j s f 框架, 还有数据库访问的h i b e r n a t e 、i b a t i s 、t o p l i n k 等框架。基本上针对不同的应用, 不同的层次都有很多相应的框架。这些框架整合了j a v a e e 所提供的基础服务组件, 基于设计模式和架构模式,提出了最佳开发实践路径。应用这些框架去满足企业 级应用开发的时候,也出现了一个问题,那就是如何来合理高效地进一步整合这 些具有特定功能的开发框架,从而实现出一个完整高效的基于j a v a e e 面向w e b 的企业级应用开发框架。因此,合理地选择不同的开发框架并将其整合为一个高 效的企业级应用框架对于开发基于j a v a e e 的w e b 应用显得尤为迫切和必要。 1 3 主要研究内容 本文主要研究基于j a v a e e 平台的w e b 应用框架的设计和实现,并设计了以 s t r u t s 2 ,h i b e r n a t e 3 ,s p r i n 9 3 以及用来增加系统灵活开发和增加客户体验的a j a x 框架的多层整合架构体系。利用该架构实现了大连鑫轮模具公司的e r p 系统,其 中包括的主要模块有:生产管理子系统、销售管理子系统、成本管理子系统、报 表分析管理子系统、系统维护子系统和用户权限子系统。 本文主要研究内容: 第1 章绪论 本论文在深入研究各个框架系统理论和设计模式的基础上,主要针对当前开 发模式中w e b 表现层与业务逻辑层、业务逻辑层与数据持久层之间不能完全分离, 使得系统维护成本增高等问题,设计了基于m v c 模式和j a v a e e 多层架构的一个 框架体系,该体系以s t r u t s 2 ,s p r i n 9 3 ,h i b e r n a t e 3 为主,a j a x 为辅,依托j a v a e e 分层体系,引入了s p r i n g 的i o c 技术和j a v a 5 的新特性a n n o t a t i o n 。通过i o c 技术 的引用,降低了系统模块之间的依赖性。通过在p o j o 类使用a n n o t a t i o n 技术,大 大降低了系统的代码量以及提高了系统的开发效率,并且通过s t r u t s 2 把a o p 思想 引入到e r p 软件系统的开发中,提高了代码的可读性,解决了代码的分散且混乱 的问题。 1 4 论文的章节结构 本文共分五章。论文的章节结构如下: 第1 章:绪论。主要对基于j a v a e e 的w e b 应用的背景,发展和现状进行了分 析。 第2 章:首先介绍企业及应用架构的发展状况,然后研究基于m v c 模式而建 立起来的s t r u t s 2 、s p r i n 9 3 、h i b e r n a t e 3 框架的原理及其新特性,通过a j a x 技术及 其实现框架的介绍,来增加客户的体验和提高系统的开发效率,并且进一步分析 它们的关键技术。 第3 章:研究基于s t r u t s 2 、s p r i n 9 3 、h i b e r n a t e 3 和a j a x 框架的架构设计,通 过综合分析s t r u t s 2 、s p r i n 9 3 、h i b e r n a t e 3 与a j a x 各自的优势和缺陷,提出将这四 个框架有效整合后的架构,并对架构的工作流程和优点作了阐述。 第4 章:介绍基于s t r u t s 2 ,s p r i n 9 3 ,h i b e r n a t e 3 以及a j a x ( e x t j s ) 整合框架的 大连鑫轮模具公司的e r p 系统的设计。首先介绍该公司e r p 系统所涉及的业务过 程,然后对当前e r p 管理应用系统进行需求分析和详细设计,最后使用本文设计 的多层整合框架来实现e r p 系统。 第5 章:总结与展望。概括总结了作者在应用该架构进行项目实施中的体会 以及不足,并提出今后需要进一步研究和发展的方向。 j a v a e e 多层架构s t r u t s 2 + s p r i n 9 3 + h i b e r n a t e 3 + a j a x 的整合 第2 章企业级应用架构发展与w e b 应用框架 2 1 企业级应用架构的发展 随着计算机的快速发展,在企业中的各种应用和计算机软件之间的桥梁开始 跨越了企业的整个业务,把这种企业级应用与当前的计算机技术更加完美的融合, 成为企业级应用架构发展的一种必然。 随着i n t e r n e t 技术的兴起,b s ( i i 4 j 览器服务器模式) 结构在企业应用中得到了 大规模应用。b s 结构是对c s 结构的一种改进。在这种结构下,软件应用的业 务逻辑完全在应用服务器端实现,用户表现完全在w e b 服务器端实现,客户端只 需要浏览器即可进行业务处理,是一种全新的软件系统构造技术。这种结构是当 今应用软件的首选体系结构。 b s 架构的企业级应用迅速得到了推广,其原因就在于相对于c s 架构方式 具有得天独厚的优势,其数据安全性大大提高,并且克服了c s 架构软件中的数 据不一致性以及数据不实时性,企业业务需要更新时,只需更新服务器端程序就 能够达到企业应用的安全升级。b s 架构把企业级应用软件发布于网络中,使我 们随时实时得到企业信息【1 1 。但是由于早期开发的b s 架构的企业级应用使用技 术混乱,把所有的业务逻辑、数据持久化、控制逻辑混在一起,这些处理逻辑都 通过页面的脚本实现,因此导致早期的b s 结构应用面临着后期维护困难、难以 扩充的问题1 2 1 。 m v c 设计模式重新定义了b s 结构应用的开发模式。m v c 模式规定b s 结 构应用应该分成3 个部分:m o d e l ( 模型m ) 、v i e w ( 视图v ) 和c o n t r o l l e r ( 控制器c ) f 3 】。 m v c 模式分离了数据访问和数据表现,给系统提供了更好的解耦。m v c 架构的 核心思想是:将程序分成相对独立而又能协同工作的3 个部分。通过使用m v c 架 构,可以降低模块之间的耦合,提供应用的可扩展性。m v c 的每个组件只关心组 件内的逻辑,不应与其它组件的逻辑混合。 j a v a e e 的出现则更加规范了b s 架构应用的开发,j a v a e e 是一种利用j a v a 第2 章m v c 理论与w e b 应用框架 平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。典型 的j a v a e e 规范定义了四个层次,包括客户层、w e b 层、企业组件层、企业资源层 【引。下面分别介绍这四个层的作用: 客户层用户界面的开发和简单的业务逻辑都可以在该层得到实现,主要用来 处理客户请求,调用相应的逻辑模块,并把结果以动态网页的形式返回到客户端。 j a v a e e 支持多种客户端,既可以是通过i n t e m e t 访问的w e b 浏览器客户端,也可 以是通过企业i n t r a n e t 运行客户端。 w e b 层是基于w e b 的应用程序服务的,它是由j a v a e e 中的j s p 和j a v as e r v l e t 等技术来实现。它可以访问封装所有的商业逻辑的组件,即企业组件层,并负责 响应来自w e b 客户端的请求。 企业组件层处理应用的核心是商务逻辑。企业组件层为底层服务组件提供必 要的接口。企业组件通常被实现为e j b 容器内的e j b 组件。其中,e j b 容器提供 组件生命周期、管理持久性、事物和资源分配等。 e i s 层即企业信息系统( e n t e r p r i s ei n f o r m a t i o ns y s t e m ) 层,包括企业已有系统、 数据库系统、文件系统等。j a v a e e 提供了多种技术来访问这些系统,如利用j c a 或者j m s 技术来访问其它已有系统( 例如:c r m e r p ) 。 j a v a e e 多层架构的缩略图如图2 1 所示。 j a v a e e 多层架构s t r u t s 2 + s p r i n 9 3 + h i b e r n a t e 3 + a j a x 的整合 b a c k e n ds y s t e m s b u s i n e s s a p p l e t p a r t n e ro ro t h e r a p p li c a t i o n l s y s t e m c o r b ac l i e n t 。j i 。丁。h 鼻p i o i i s e r v l e t s 1 l o p ;+ j s p s 躲jl 嘭一 嘭二,。印 e j b s 勃 ,j i j m s c o n n e c c o r s i ?;p 。 一一 巍、i,;cs q l ,一7 , v “w _ r b s e “:5 2 哆磊 r 1r p r o 亨l 出了m t o c 0 1土 厂、厂l 、ie x i s i t i n gs y s t e m b p b u u s s m i n c e s s s sp a m e ro r j :l 篇:等 o t h e rs y s t e m s 图2 1j a v a e e 多层架构 f i g 2 1j a v a e em u l t i l a y e ra r c h i t e c t u r e c u s t o m e rl a y e r w e bl a y e r e n t e r p r i s eb e a nl a y e r e n t e r p r i s er c s o u r c el a y e r 目前,a j a x 技术的出现再次完善了传统的w e b 应用。a j a x 应用强调异步发送 用户请求,用户可以在浏览页面的同时,发送请求。在第一个请求的服务器响应 还没有完全结束时,浏览器可以再次发送请求。这种请求的发送方式非常类似于 传统的c s 结构应用【5 1 。 2 2m v c 设计模式研究 软件设计中的一个核心问题是能否使用重复的体系架构,即能否达到体系架 构级的软件复用。许多学者们开始研究和实践软件体系架构的模式问题,设计模 式的理论也就相应的被提了出来。一个设计模式描述了对于特定设计问题被验证 成功了的解决方案,它综合了所有开发者对于这个问题己有的知识和见解,同时 它也是对于常见问题的可重用方案。设计模式一般适用于单个问题,但是把多种 设计模式组织在一起就可以提供整个企业系统的解决方案。m v c 设计模式在使用 b s 结构开发模式的企业级应用中,已经成为毋庸置疑的首选方案。 m v c 英文即m o d e l v i e w c o n t r o l l e r ,它是目前非常流行的一种软件设计模式。 第2 章m v c 理论与w e b 应用框架 m v c 的设计思想是将应用的输入、处理和输出流程进行强制的分离。这样一个应 用被分成:m o d e l ( 模型) 、v i e w ( 视图) 、c o n t r o l l e r ( 控制) 三个层次,这三个层 次以最少的耦合协同工作,从而提高应用的可扩展性及可维护性。m v c 模式的整 体效果可如图2 2 所示。 图2 2w e 结构 f i g 2 2t h es t r u c t u r eo fm v c 视图( e w ) :代表用户交互界面,典型的视图技术包括:j s p 技术,h t m l 静态 页面,包含有a j a x 框架的动态页面以及一些报表技术页面等等,视图技术主要负 责数据的输入和输出。 模型( m o d e l ) :就是业务流程和业务状态的处理以及业务规则的制定。业务流 程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终 的处理结果。业务模型的设计可以说是m v c 的核心。业务模型还有一个很重要的 模型那就是数据模型。数据模型主要指实体对象的数据保存( 持久化) 。比如将一 条数据保存到数据库。可以将这个模型单独列出,所有有关数据库的操作只限制 在该模型中。 控锘l j ( c o n t r o l l e r ) :通过控制层可以起到控制整个业务流程并且实现m o d e l 和 v i e w 的协同工作。控制层并不做任何的数据处理。因此,一个模型可能对应多个 d a v a e e 多层架构s t r u t s 2 + s p r i n 9 3 + h i b e r n a t e 3 + a j a x 的整合 视图,一个视图可能对应多个模型【粥】。 需要说明的是在b s 架构中控制层通过使用前端控制器( f r o n tc o n t r o l l e r ) 模 式来实现,这个模式包含了一个分发器( 在j a v a 的w e bm v c 实现中,通过s e r v l e t 或者f i l t e r 来实现分发器) ,而分发器将请求u r l 映射至需要被执行的命令实例 ( c o m m a n di n s t a n c eo ra c t i o n ) ,命令实例在w e b w o r k 或者s t r u t s 中就是a c t i o n 。 a c t i o n 与系统后端的服务进行交互,通常这些服务会组合在一起作为模型。命令 实例在处理完业务逻辑之后返回一个码值,而这个返回码会映射到某一个视图( 通 常是个w e b 页面模板,譬如j s p ) 。最后,结合控制器和模型,视图将会呈现 给用户。通常视图会使用标签库,以便更简单地访问数值【9 1 。 目前常用的m v c 框架,除了s t r u t s l ,w e b w o r k ,还有一些非常流行的m v c 框架,这些框架都提供非常好的层次分隔能力,并且在实现良好m v c 分割的基础 上,还提供一些辅助类库来帮助应用的开发。例如:j s f ,t a p e s t r y ,s p r i n gm v c , s t r u t s 2 ,其中本文的着重研究的框架是集大成者s t r u t s 2 。 2 3s t r u t s 2 框架 2 3 1s t r u t s 2 简介 s t r u t s 2 以w 曲w ,0 r k 优秀的设计思想为核心,吸收了s t r u t s l 的部分优点,建立 了一个兼容w | e b w b r k 和s t r u t s l 的m v c 框架,基于s t r u t s l 和w e b w o r k 框架的成 熟性,s t r u t s 2 不仅保留了s t r u t s l 的简单易用性,并且充分利用了w e b w o r k 的拦截 器机制( 其实就是a o p 思想) ,将s t r u t s 2 发展成一个具有高度可扩展性的框架。基 于这种背景,s t r u t s 2 将会在短时间内迅速成为m v c 领域最流行的框架【1 0 】。 s t r u t s 2 的体系与s t r u t s l 体系的差别非常大,因为s t r u t s 2 使用了w e b w o r k 的 设计核心,大量使用拦截器来处理用户请求,从而允许用户的业务逻辑控制器与 s e r v l e ta p l 分离。 s t r u t s 2 ,类同与w e b w o r k ,同样使用了拦截器作为处理,以用户的业务逻辑 控制器为目标,创建一个控制器代理。控制器代理负责处理用户请求,处理用户 第2 章m v c 理论与w e b 应用框架 请求时回调业务控制器的e x e c u t e 方法,该方法的返回值将决定s t r u t s 2 将怎样的视 图资源呈现给用户。s t r u t s 2 的体系概括【1 1 1 如图2 3 所示。 图2 3s t r u t s 2 体系概括 f i g 2 3t h eg e n e r a lg r a p h i co fs t r u s 2 s t r u t s 2 框架的大致处理流程与w e b w o r k 类似,首先从客户端( 浏览器) 发出 一个请求,请求经过一系列过滤器( a c t i o n c o n t e x t c l e a n u p ,s i t e m e s h 等) ,由s t r u t s 2 的核心控制器f i l t e r d i s p a t c h e r 根据请求来调用合适的a c t i o n ,s t r u t s 2 的拦截器栈 自动对请求应用通用功能( 例如w o r k f l o w ,v a l i d a t i o n 或者文件上传等功能) ,然后 回调a c t i o n 的e x e c u t e 0 方法,该e x e c u t e 0 方法先获取用户请求参数,然后执行某 种数据库操作,既可以是将数据保存到数据库,也可以从数据库中检索信息。实 际上,因为a c t i o n 只是一个控制器,它会调用业务逻辑组件来处理用户请求a c t i o n 的e x e c u t e 0 方法,然后处理结果信息将被输出到浏览器中,可以是多种视图技术 中的任何一种( j s p ,p d f ,v e l o c i t y ,f r e e m a r k e r 等) 【1 0 】。 2 3 2s t r u t s 2 核心组成 对于一个m v c 框架而言,重点就是实现两个部分:控制器部分和视图部分f 1 0 1 。 同样s t r u t s 2 把重点放在了这两个部分:控制器部分是由a c t i o n ( 以及隐藏的一系列 拦截器) 来提供支持,而视图部分则通过大量标签来提供支持。 1 0 d a v a e e 多层架构s t r u t s 2 + s p r i n 9 3 + h i b e r n a t e 3 + a j a x 的整合 大致上,s t r u t s 2 框架由三个部分组成:核心控制器f i l t e r d i s p a t c h e r 、业务控制 器a c t i o n ( 也称w e b 层业务逻辑控制器) 和用户实现的业务逻辑组件。s t r u t s 2 本身已 经提供了核心控制器部分,该核心控制器作为一个f i l t e r 负责过滤用户的应用请求, 如果用户请求以a c t i o n ( 默认状态下) 结尾,该请求将被转入s t r u t s 2 框架处理。而业 务控制器组件就是用户实现a c t i o n 类的实例,a c t i o n 类中一般包括一个e x e c u t e 0 方法,该方法返回一个字符串,每个字符串对应一个视图名。而用户实现的业务 逻辑组件,即j a v a e e 应用里的模型组件,已经超出了m v c 框架的覆盖范围,可 能还包含了d a o 、领域对象组件。通常,m v c 框架里的业务控制器会调用模型 组件的方法来处理用户请求。先来具体研究一下s t r u t s 2 的a c t i o n 机制。 1 a c t i o n 一般一个a c t i o n 代表用户的一次请求或调用【9 1 。相对于s t r u t s l 来说,s t r u t s 2 采用了低侵入式设计,s t r u t s 2 的a c t i o n 可以完全是一个p o j o 类,从而有很好的 代码复用性。为了让用户开发的a c t i o n 类更加规范,s t r u t s 2 的a c t i o n 需要实现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论