已阅读5页,还剩74页未读, 继续免费阅读
(计算机应用技术专业论文)基于框架和设计模式的电子商务系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着i n t e r n e t 的邈速发展,开发基予b r o w s e r s e r v e r 的服务器端酶程窿毫 经皴梵w e b 瘦弱撩枣舞发豹重熹。援然瑰崧藤翔e j 器乎裔舞发疲弼软磐霹滚满足 程序歼发的需受,但幽于在开发期间会生成太量的代码,导致衙期的代码维护 工作变得难于控制。本文针对所面临的闯磁,采用框架及设计模式技术设计开 发了一令毫子纛务系绞。系统昊鸯麓可靠谯、霉扩震魏秘霹羹掰经瓣特意。 奉文首先穰详细分析s p r i n g 糕架豹事务管理机制、面向穷蕊编程方法潮控 期爱耱模式熬蘩戳上,提出了采瘸羧铡反转模式寒黪凌系绞审代码之麓依簇性 过黼的问题。邋过引入接口和设计模式的方式来降低代码耦合魔,使得程序的 可维护性增强,同时对控制反转模戏的几种实现类型谶行了分析,从而为不同 熬攒疹实褒提供了受多爨解决方案。其次,镑瓣曩蠢蓼耀霆彝鼹蘩技本难荻窟瑗 横切关注点的润题,本文提出使用蕊向方黼编程方法来分离软件中横切多模块 救荚注点。劳凌魏基旗上对嚣囱方蕊缀程方法进行改遴,采耀了嚣自方瑟震建 方法。 通过分析s t r u t s 和h i b e r n a t e 框架的原理和特点,本文提出将s p r i n g 樵 黎鸯s t r u t s 帮h i b e r n a t e 框檠进行熬会,麸嗣实现一个包括援图溪、业务邋辑矮 和掩久层三层黎构氍b 斑用程序的聪慧。 本文分柝鞠辑究了设计模式技术,舞将数据谤蠲对象( d a o ) 模式、健遵 ( p r o x y ) 模式、策略模式( s t r a t e g y ) 这几释设计模式斑携予监务逻辑层,秩薅搀 高了系统的可扩展性和可复用性。 作为这些研究成果的应用,本文最瑶利用e c l i p s e 开发王舆程t o m c a t 容器孛 实魏了一个改逡螽豹w e b 艨孺程痔。并测瘸掇制反转模筑豹愚戆灞过设诗接霸秘 配甏文传来进行动态的依赖注入铁褥套效孵对程序代娲孵耦。褥对在程序中後 瘸麓秘方瑟缓獠方法辩模块孛戆横镯关注煮送行分解、辩装、鬟薪缝合,麸蕊 提简了代码的熬用性和扩展性。 一l 东北电力大学硕十学位论文 关键词:设计模式:控制反转:面向方面编程;s p r i n g ;s t r u t s ;h i b e r n a t e a b s t t a c t w i mt h er a p i dd e v e l o p m e n to f i n t e r n e t 。d e v e l o p i n gt h ep r o g r a mo fs e r v e re n d b a s e do nb r o w s e r s e r v e rh a s a l r c a d y b e c o m ea l l i m p o r t a n tp a r t o fw e b a p p l i c a t i o n s t h ea p p l i c a t i o n sb a s e do ne j bp l a t f o r m sc a l lm e e tt h en e e do f s o f t w a r e d e v e l o p m e n t b u tm a s s i v ec o d e sw i l lb ep r o d u c e da tt h ed e v e l o p m e n tp e r i o d , w h i c h w i l lm a k et h ec o d em a i n t e n a n c ew o r kb e a t o m ed i f f i c u l tt oc o n t r 0 1 t os o l v et h e p r o b l e m , a ne c o m m e r c es y s t e mi si m p l e m e n t e db yu s i n gt h et e c h n o l o g yo f f r a m e w o r ka n dd e s i g np a t t e r n a n dt h es y s t e mh a ss t r o n gr e l i a b i l i t y ,e x p a n s i b i l i t y a n dr e u s a b i l i t y f i r s t l y ,i nt h i sp a p e r , t h ei n v e r s i o no fc o n 舡o ld e s i g np a t t e r ni sa d o p t e dt or e s o l v e t h ep r o b l e mo fs t r o n gd e p e n d e n c yi nt h ec o d e so fs y s t e mo nt h eb a s i so ft h ea n a l y s i s o fs 两n g st r a n s a c t i o nm a n a g e m e n tm e c h a n i s m ,a s p e c to r i e n t e dp r o g r a m m i n ga n d i n v e r s i o no fc o n t r 0 1 i td e e o u p l e sc o d e sb yi n t r o d u c i n gi n t e r f a c ea n dd e s i g np 砒e r n , w h i c hi m p r o v e st h em a i n t a i n a b i l i t yo fp r o g r a m s t h em o r es o l u t i o n sh a v eb e e n p r o v i d e df o rt h ed i f f e r e n tp r o g r a mi m p l e m e n t a t i o n sb yt h es t u d yo ft h e s e v e r a l d i f f e r e n tt y p e si ni n v e r s i o no f c o n t r o lp a t t e m s e c o n d l y ,i nv i e wo f t h ep r o b l e mt h a t o b j e c to r i e n t e dp r o g r a m m i n gt e c h n o l o g yi s d i f f i c u l tt oi m p l e m e n tc r o s s c u t t i n g c o n c e r n s ,t h i sp a p e ri n t r o d u c e st h a tc r o s s c u t t i n gm u l t i - m o d u l e sc o n c e r n si ns o f t w a r e a l es e p a r a t e db yu s i n ga o pm e t h o d a f a rt h i s ,a o pm e t h o dh a sb e e ni m p r o v e db y a d o p t i n ga s p e c to r i e n t e dr e b u i l d i n gm e t h o d b ya n a l y z i n gt h ep r i n c i p l e sa n dc h a r a c t e r i s t i c s o fs t r u t sa n dh i b e r n a t e f r a m e w o r k , t h et h i n k i n go ft h ew e ba p p l i c a t i o n sw i t ht h r e el a y e r sw h i c hi n c l u d e p r e s e n t a t i o nl a y e r ,b u s i n e s sl a y e ra n dp e r s i s t e n tl a y e ri sg i v e nb yi n t e g r a t i n gs p r i n g w i t hs t r u t sa n dh i b e m a t e t h et e e h n o l o 醪o fd e s i g np a t t e r ni sa n a l y z e da n ds t u d i e di nt h i st h e s i s b yu s i n g d a o p r o x ya n ds t r a t e g yi nt h eb u s i n e s sl a y e r , t h er e u s a b i l i t ya n d 东北电力大学硕叶学位论文 e x p a n s i b i l i t yo f t h es y s t e mi si m p r o v e d 舢t h eu s eo ft h er e s e a r c hr e s u l t s a l l i m p r o v e da p p l i c a t i o n i s f i n a l l y i m p l e m e n t e di nt h et o m c a tc o n t a i n e rb ye c l i p s et 0 0 1 a n dt h e 由m 斌d e p e n d e n c y i n j e c t i o ni sr e a l i z e dw i t ht h em e t h o do f d e s i g n i n gi n t e r f a c e sa n dc o n f i g u r a t i o nf i l e sb y i o cp a t t e r nt od e c o n p l et h ep r o g r a mc o d e se f f i c i e n t l y a o pm e t h o di su t i l i z e dt o d e c o m p o s e ,e n c a p s u l a t ea n dr e c o m b i n ec r o s s c u t t i n gc o d c e r n si nm o d u l e s ,a n dt h u s t h er e u s a b i l i t ya n de x p a n s i b i l i t yo f t h ep r o g r a m si si m p r o v e d k e y w o r d s :d e s i g np a t e r n ;l o c ;a o p ;s p r i n g ;s t r u t s ;h i b e r n a t e i v 论文原创性声明 本人声明,所呈交的学位论文系在导师指导下本人独立完成的研究成果。 文中依法引用他人的成果,均已做出明确标注或得到许可。论文内容未包含法 律意义上已属于他人的任何形式的研究成果,也不包含本人已用于其他学位申 请的论文或成果。 本人如违反上述声明,愿意承担以下责任和后果: 1 交回学校授予的学位证书; 2 学校可在相关媒体上对作者本人的行为进行通报; 3 本人按照学校规定的方式,对因不当取得学位给学校造成的名誉损害 进行公开道歉: 4 本人负责因论文成果不实产生的法律纠纷。 论文作者签名:尘譬血l 同期:坦年上月丝日 论文知识产权权属声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权归属东北电 力大学。学校享有以任何方式发表、复制、公开阅览、借阅以及申请专利等权 利。本人离校后发表或使用学位论文或与该论文直接相关的学术论文或成果时, 署名单位仍然为东北电力大学。 论文作者签名: 导师签名: 绛丝 塑生 r 期:盟年月盟r r 期:立2 年土月监同 第l 审燎论 第1 章绪论 。 课题的背景及意义 电子商务就熄指交易者之间依托计算机网络,按照怒的规则或标准进行 包括商务信息、商务管理和商品交易猩内的全部商务活动。随着i n t e r n e t 技术 的不断发展,电子商务已是企业发展的大势所趋。目前,邋过w e b 进行霭务滤 麓繁来黪蠖羁秘德蕊产生夔交瑟速度溅成秀亳子蠢务遮遮发爱篱关疆接裁秀。 电子商务的发展离誉开其耜应的支撵技术,其中软件榧絮投术窥设计模式技零 越来越多的应起了人们的主意,并已成为今天各大高校、研究所研究的热点。 框架是面向对敷系统可以获得的最大复用方式,较大的系统将会由多层彼 j 魄合作的框架组成,可以用来产生专门的定制程序。软件殿躅的相似性比不阁 患要多,宅嚣】运纷我樱阕戆褪器主,黧繁麸穗同懿设备输入繁惠输出蜀穗藏黪纛 冢设备,并且存镶数据翻楣丽豹硬盘设备。工作在传统察搿应用豹开发入受习 惯于那些可以覆盏虚用开发同一性的正具包和开发环境樵架,在这些公共基础 上的应用框架可以为开发人员提供可以为他们的产品提供可重用服务的基础椴 絮。 框蔡提供了建藏复杂系统豹强誊力瓣王具,它其鸯鳐下嚣熹:可毅复建嘏 絮豹俸系结构帮代璐,减少了编码、调试弱溅试豹王终黛。使用户能够专注予 业务逻辑,不需簧花大量时间去做火爨繁础开发工作。为缀合软件开发奠定了 基础。设计良好的框架将允许第三方软件公司提供部分躐错完整组件供用户戚 系统集成商装配。 软终设诗壤妓楚入识在长期的设计较馋、管理组织软传帮发等实践中犬薰 经验熬提炼窝抽象,楚复霜较箨设谤秀法、过程管理经骏鹃有力工兵。模式键 供了一系列软件歼发中的思维套路,通过模式的使用,有利于在复杂的系统巾 产生简洁、精巧的设计【2 】。 软件模式为我们提供了一套简洁通用的设计、管理、缀织方面的词汇,阍 东北电力大学矮 学位捷丈 i i l l l l l l l l li i i q l ii l l l l l l l l l ii inu l l l l l l l _ 时模式也为我们提供了一个描述抽象攀物的规范标准,w 太大促进软件开发过 程中人与人之间的黛流,而软件开发中的交流是至关重要的。软件项目尤其怒 较大规模的软件项隧之所以失败,有很多是因为不同团队之间或者是同一个潮 瓢凑熬嚣发誊之阗,交流不够充分导数熬。 与不篌用设计模式翡软释系统楣魄,一个大量捷臻设计模式豹软释系统瀚 对象建模更加合理,对象问的耦合度爨小,效率、可靠髋、可扩展性、并发蚀 和分布性更高,更能狭得高层次的设计复用和代码复用。同时,使用设计模式 w 以提高软件系统设计的效率。 成熟黪软俘系统遥常使用多弹设谤模式。将较舞设谤缳果及葵使用黪设谤 模式弱嚣雩语录,茸帮韵开发入受瑾解遮臻可复瘸愚惹,秩褥容易理释软箨系绕 巾的类和对象,提离软件系统的可理解健嘲。 随着i n t e r n e t 的飞速发展,电予商务系统日趋大型化,传统的电子商务体 系结构面幄着严峻的挑战,其中最为突出的问题是开发负掇煎、维护困难等。 本文赞对匿蓠电子懿务系统赝蘧辐熬 承簇,基予j 2 e e 援絮,采瘸框架技本及谈 诗模式,设谵嚣发了一令逛子巍务系绕。系统其毒毫霉纛缓,蜀扩震往弱甏熬 网性的特点。 1 2 国内外研究状况 。2 框架的戆突瑗获 目前,j 2 e e 多层架构上己经开发出了很多框架,这火太减轻了开发人员的 负担,开发者可以将不同层上的框架熬含到一起,从而能够从烦杂的底层编码 中解脱出来。 在梅建w e b 疲惩畦,用户请求的娥璎、业务逻辑处壤以及数据的持久化怒 必须轻绥考瘩瓣戳豢,嚣显遣是大帮分废臻必须兵善萎较舞复杂熬联赛。瓣藏 针对这三方面,人们开发了很多稚槊,如图卜l 所示。 第1 章终论 i i i i i i i i i 目糕 c l i e m 面目w e b 砸叮b u s i n e s sn 盯 睡i - ij 2 e e 絮 奄上的框架 应用子j 2 e ew e b 层的框架主要有以下凡种: ( 1 ) s t r u t s 框架;是一个m v c 框架,主要用于视闰层【4 】。 ( 2 ) t u r b i n e 框架:这是a p a c h e 的开源项目。基于s e r v l e t 。据说速度比 较快,基于s e r v i c e 的方式提供各种服务。 ( 3 ) c o c o o n 鼷絮:这是a p a c h e 靛好源瑷曩。基予x 戮,墓予x s p ( 逶谂爨 说,x s p 是在x m l 静态文挡孛热入j a v a 程序段后形成的动态) a l l 交档。) 。特点 是可以与多种数据源交互,包括文件系统,数据库,l d a p ,) o i l 资源库,网络数 据源等。 ( 4 ) j a t o 樵架:这是s u n 推出的一个商业性框架,生要应用技术是j s p , t a g l i b ,j a v a b e a n 等。j a t o 应魇程膨糕桨是i p l a n e t 应丽撵痔框架斡疆名。它 是一个成熟静、强大缒,基子蟊疆棘潦豹嚣囱于舞发w e b 庭翔程痔豹应矮疆黎。 结合了显示字段、应用程序事件、组件层次和以页面为中心的开发方法、以及 州c 和服务到工作赣s e r v i c e - t o - w o r k e r s 的设计模式等概念。j a t 0 可适用于中、 大、超大规模的w e b 应用。但是它也不是一个企业层的成用框架,也就是说锻 不会直接提供刨建e j bw e bs e r v i c e s 镶金监层组件鲍方法,讴惩它可l 奠构造感 游褥金堑层缝释熬客户应震掰。 ( 5 ) j s f 框架:是一个包括s u n 在内的专家组正在定义的开发w e b 应用用户 界面的框架,它提供了丰富的g u i 组件模型。 应用于业务艨的框架主要有: ( 1 ) s p r i n g 橼絮:s p r i n g 是一个服务予所有层瑟的嫩爝框架,它的功缝檄 东北电力大学硕十学位论文 多,包括a o p 、o r m 、d a o 、c o n t e x t 、w e b 、m v c 等几个部分组成。s p r i n g 带来 的好处有;自然的面向接口的编程,业务对象的依赖注入,一致的数据存取框 架和声明式的事务处理,统一的配置文件等等,更重要的是s p r i n g 既是全面的 又是模块化的,s p r i n g 有分层的体系结构,这意味着能选择仅仅使用它任何一 个独立的部分,就像本文,而它的架构又是内部一致的【6 l 。 ( 2 ) w a f 框架:w a f 是w e ba p p l i c a t i o nf r a m e w o r k 的简称,是s u n 蓝皮书 例子程序中提出的应用框架。它实现了m v c 和其他良好的设计模式。 应用于数据持久化的框架主要有: ( 1 ) h i b e r n a t e 框架:h i b e r n a t e 是一个面向j a v a 环境的对象关系数据 库映射工具。它不仅仅管理j a v a 类到数据库表的映射,还提供数据查询和获取 数据的方法,可以大幅度减少开发时人工使用s o l 和j d b c 处理数据的时问。 h i b e r n a t e 的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的 9 5 f 7 】。 ( 2 ) i b a t i s 是一个功能强大实用的s q l m a p 工具,不同于其他o r m 工具( 如 h i b e r n a t e ) ,它是将s q l 语句映射成j a v a 对象,而对于o r m 工具,它的s q l 语 句是根据映射定义生成的。i b a t i s 以s q l 开发的工作量和数据库移植性上的让 步,为系统设计提供了更大的自由空问。有i b a t i s 代码生成的工具,可以根据 d d l 自动生成i b a t i s 代码,能减少很多工作量。 1 2 2 设计模式的研究现状 设计模式是九十年代初软件工程领域兴起的一个研究方向,它的研究己经 引起了o o p ( o b j e c t - - o r i e n t e dp r o g r a m m i n g ) 领域甚至整个软件工业界的极大 关注和浓厚兴趣,各种关于模式的专题讨论会( w o r k s h o p s ) 、指导小组 ( t u t o r i a l s ) 、电子论坛、期刊论文、学术专著如雨后春笋般竞相涌现。由于 设计模式提升了o o 软件设计与交流的抽象层次。在软件工程c a s e 工具中也越 来越重视引入模式。设计模式已成为当前乃至今后软件工程研究领域的一大热 点,并被认为是继0 0 技术之后的又一重大突破。 设计模式的研究现状可以概括为如下几个方面: ( 1 ) 模式的描述与应用。 - 4 - 第l 帝终论 g o f 在其经熊蔫作中采用基于对羰建模技术( o 町) 的擞网和对象图对模式中 的类和实例进行图形描述,采用b o o c h 和o b j e c t o r y 的交甄圈说明对象之间的 请求序列和协作关系。设计模式的描述缺乏国际公认的统一标准,尽管不久聪, 瘸子模式文终纯豹籀号己经集成裂u 黥孛,模式静搓述秘蒸予特定摇透方式豹 复瘸还是成为一个研究熟点。 过去的几年中,在软件工业的广 ! 乏生题和领域中,模式被更系统地应用, 这些领域包括:成用程序框架;高性熊w e b 服务器、网络管理、并发控制与同 步;输入与输出处理 安全及可靠性;实时和嵌入式系统;住能度量与优化。 ( 2 ) 模式系绫粒模式语言。 箍着较箨麓侮j i 雪模式关注静增长,戳模式语言为审,办豹工季# 也在增长。晕 在1 9 9 5 年,模式翻体的开创者就开始为特殊软件开发领域( 特别是电信领域) 中的模式集进行文件化。这些模式比早先出版的独立模式相互间有更紧密的联 系。实际上,某魑模式相互联系紧密,以至于它们不会单独存在。模式被组织 避模式语言串,臻模式语言孛,每个模式建立在副的模式之上或组合成其它模 式潮, ( 3 ) 方法和工凝。 为了更有效地使用模式,相关方法和工具的研究持续进行。软件研究团体 在该主题上一直失态不渝地工作着,试图找出一些在现有的系统中识别模式的 方法,以及将模式艨瘸予歪自软件王裁秘逆向软件工程魏誓具。 焉予模式熬羟漤获释工兵熬研究遥没蘑较锌王其溺搭产生缀大夔影桶,键 取得了些进展,用于模式文件纯的符号已经集成到u 眦中。 未来的设计模式领域,还有各种备样的问题有待研究,如:对特定的新系 统,如何寻找可适用的一个或多个新模式? 发现新模式。在特定程序中如何发 现系统中反复出现的结构和行为? 对一令模式的施用。即一个模式的实现如倪 方襞援一令c a s ei 爨繇支持? 不露浚诗模式缝装惹豹教莱翔 霉? 爨否形式玩一 个设计模式的描述? 设计模式如何熊被有效遣捡索和理解? 如何进行模式的分 解与组装? 东北电力大学硕十学位论文 1 3 课题研究内容 1 在详细分析和研究了s p r i n g 框架的事务管理机制、面向方面编程方法 和控制反转模式的基础上,提出了采用控制反转模式来解决系统中代码之间依 赖性过高的问题。通过研究提出了引入接口和配置机制的方法来解决代码耦合 度过高的问题,使得程序的可维护性增强。同时对控制反转模式的几种实现类 型进行了分析,从而为不同的程序实现提供了更多的解决方案。 2 针对目前用面向对象技术难以实现横切关注点的闯题,本文提出使用面 向方面编程方法来分离软件中横切多模块的关注点,并在此基础上对面向方面 编程方法进行改进,提出了面向方面重建方法,面向方面重建方法通过“提炼 方法调用”重建技术更进一步将那些调用重建到一个单独的方面中。 3 通过分析s t r u t s 和h i b e r n a t e 框架的原理和特点,本文提出将s p r i n g 框架与s t r u t s 和h i b e r n a t e 框架进行整合,共同实现一个包括视图层、业务层 和持久层三层架构w e b 应用程序的思想。 4 分析和研究了设计模式技术,并将数据访问对象( d a o ) 模式、代理( p r o x y ) 模式,策略模式( s t r a t e g y ) 这几种设计模式应用于业务逻辑层,从而提高了系 统的可扩展性和可复用性。 5 作为这些研究成果的应用。本文最后利用e c l i p s e 开发工具在t o m c a t 容器中实现了一个改进后的w e b 应用程序。并利用控制反转模式的思想通过设 计接口和配置文件来进行动态的依赖注入,从而有效的对程序代码解耦。同时 在程序中使用面向方面编程方法对模块中的横切关注点进行分解、封装、重新 组合,从而提高了代码的重用性和扩展性。 一6 _ 第2 章w e b 框架和设计模式技术概述 第2 章w e b 框架和设计模式技术概述 2 1 s p r i n g 框架简介 在我们进入具体的细节之前,先整体的了解一下s p r i n g 框架,包括它的来 历、出发点、以及其基本的构成。 1 s p r i n g 的出发点 s p r i n g 框架起源于其缔造者r o dj o h n s o n2 0 0 2 年所写的e x p e r t o n e o n - o n ej 2 e ed e s i g na n dd e v e l o p m e n t ) 一书的基础代码。在这本书中,r o d 介绍他自己的j 2 e e 经验,并且解释了e j b 为何常常葬送了整个项目。他坚信一 种轻量级的,基于j a v a b e a n 的框架完全可以满足大多数开发人员的要求。2 0 0 3 年2 月,他把所描述的框架在s o u r c e f o r g e n e t 公开了源代码,后来,这个框 架就是演变成了著名的s p r i n g 框架 在s p r i n g 之前,许多专用框架在各个领域都有着很多出色的解决方案,比 如:w e b 框架、持久化方案、远程调用工具等等,然而将这些工具整合成一个全 面的架构却困难重重,甚至成为一种负担。s p r i n g 的目标是提供一种贯穿始终 的解决方案,将各种专用框架整合成一个连贯的整体构架。在这种意义上说, s p r i n g 框架就像一个黏合剂,将各个领域出色的解决方案集合到一起,构成一 个新的架构,更好的为应用服务。 s p r i n g 力求不强加任何架构风格,而是把选择的权利留给开发者,允许用 户使用其中的单项功能,而不是把整个框架强加给用户。s p r i n g 中的许多特性, 如:j d b c 抽象层或者h i b e r n a t i o n 集成,都可以作为一个库单独使用,当然也 可以作为s p r i n g 整体方案的一个部分。从这里我们可以看出,s p r i n g 为我们提 供了极大的灵恬性,我们即可以选择不同领域优秀的工具,又可以选择s p r i n g 本身的各个部分。下面我们来看一下s p r i n g 的基本结构。 2 s p r i n g 的基本结构 下图为s p r i n g 框架的基本结构图: 末北电力犬擘磺十学位论文 i i i i i i i i i i - 皇l _ _ - _ - _ _ _ - _ _ _ i 墨_ _ _ _ _ _ _ - - _ _ _ - 一 图2 - ls p r i g 框架的基本结构 由图中所示s p r i n g 框架有7 个基本模块,这7 个模块怒相互独立的,繇个 穰涣豢寿一令对疲瓣j a r 文箨。其孛: s p r i n gc o r e :s p r i n g 框架最为麓础、最重要的模块。它提供i o c 容嚣, 即依赖注入。 s p r i n gc o n t e x t :提供b e a n 的访问方式,并且添加了用于资源绑定、事件 移植、资源装载和避明的装载上下文等功能。 s p r i n gd a o :爨袋j o e 嚣撩象鼷,褒褥舞发者苓瘸裘壤写菲堑务功戆戆 j d b c 代码,同对掇供它弱对憨够提供缡程方式纛声翻方菠掇籁| 事务。 s p r i n go 跳:为当前流行的o rm a p p i n g 技术提供集成。 s p r i n sa o p :受现了a o p 联盟定义的a o p 编程实现。 s p r i n gw e b 提供面向w e b 应用集成的功能。这里的集成是初步的集成。 s p r i n gw e bm v c :提供m v c 的实璇嘲。 3 。s p r i n g 糕粲戆特点 s p r i n g 框架所掇供的m v c 有着以下的一些特点: ( 1 ) 清晰的角色划分。角色包含了控制器,验证器,命令对象,表单对象 和模型对象;分发器,处理器映射和视阁解析器等。 第2 章秘b 攫絮釉设计模式接术概透 h i u l l l l 罾| 曼量量曹_ _ 目置_ _ i ( 2 ) 直接将框架类和应用类都作为j a v a b e a n 配置。包括通过应用上下文既 鬣中间层引用,例如,从w e b 控制器到业务对象和验 芷器的引用。 ( 3 ) 可适应饿,但不具有强制性。根据不同的情况,使用任何你需要的控 铡器子类( 普逶撩裁器,会令,表攀,囊霉,多令行为,袋蠹骞定义戆) ,嚣攀 楚要求强俺东莲都器扶a c t i o n a c t i o n f o r m 继承。 ( 4 ) 可重用的她务代码,而不需骚代码重复。你可以使用现有的业务对敷 作为命令对象或袭单对象,而不需要猩a c t i o n f o r m 的子类中重复它们的定义。 ( 5 ) 可定制的绑定和验证。将类溅不匹配作为应用级的验证错误,这可以 5 l 存镑误豹僮,以及本蘧纯的目期和数譬绑定等,两不怒哭浆镬臻字德事表肇 对象,手动解辑窀弗转换妥照务辩象。 ( 6 ) 可定制的处理器映射,可定制的视图解析。灵活的模型可以根据名字 值映射,处理器映射和视图解析使应用策略从简单过渡刭艇杂,而不是只有一 种单一的方法。 ( 7 ) 可定制的零墟位移主瑟解橱,支持j s p 。无论鸯没鸯使用s p r i n g 标皴 岸,支骛器t l ,戈持不需要羲舞过渡瓣v e l o c i t y ,等等。 ( 8 ) 简单而强大的标签库。它尽可熊地避免在h t 她擞成时的开销,提供猩 标记方面的最大灵活性。 2 2 s p rl n g 的核心枧制l o e 黑a o p i o c 模式与a o p 撰絮在s p r i n g 巾蠢骞着举是轻耋熬魏佼,是s p r i n g 撰繁豹 核心部分。其中i o c 模式是贯穿s p r i n g 框架始终韵一个概念,它秉承了g o f 模式的基本理念,即:“针对接口编程,而不是实现”。 1 i o c 模式简介 当进行项嚣舞发孵,我 f 】掩一个笺杂煞系统进行鸯效鲍捌分,形成多个模 块,这样蜀疆佼我鬃有效憨溪簿霸控秘整个系统,使每个模块熬蕤易予瑾解鞫 维护。但是模块之阆以某种方式进 予储息交换的时候,模块和模块之闯就不可 避免的发生了某种耦含关系。如果各个模块之间没有任何的关联,那么该模块 不属于此系统,或者整个软件不过是飘不相干的系统的简单堆积,对每一个系 统其所有功能均谯一个模块中实现,遮笛子没有做任何模块盼分解。 东北电力大学硕t 学位论文 从这种意义上说来,模块间的依赖关系是不可避免的。但是,如果模块间 耦合关系过强则会给我们带来很大的麻烦,对整个系统来说会造成很大的危害。 特别是当需求发生变化时,代码的维护将是一个灾难。因此,我们要尽可能的 消解模块间不必要的耦合,尽量提高系统的质量。 i o c ( i n v e r s i o no fc o n t r 0 1 ) 模式,即控制反转,就是为了要解决模块间的 耦合,依赖注入( d e p e n d e n c yi n j e c t i o n ) 是对i o c 模式的一种扩展的解释。i o c 是一种用来解决组件( 实际上也可以是简单的j a v a 类) 之间依赖关系、配置及生 命周期的设计模式,对组件依赖关系的处理是i o c 的精华部分。其中i o c 的实 际意义就是把组件之间的依赖关系提取( 反转) 出未,由容器来具体配置。这样, 各个组件之间就不存在h a r d c o d e 的关联,任何组件都可以最大程度的得到重 用。 而运用了i o c 模式后,我们不再需要自己管理组件之间的依赖关系,只需 要声明由容器去实现这种依赖关系。就好像把对组件之间依赖关系的控制进行 了倒置,不再由组件自己来建立这种依赖关系而交给容器去管理【1 0 1 。 2 i o c 的实现方式 i o c 的实现主要有接口注入、设值注入及构造子注入三种方式,其中接口注 入模式因为历史较为悠久,在灵活性、易用性上不如其他两种注入模式,因此 在i o c 的专题世界内并不被看好,目前i o c 的实现方式主要以设值注入和构造 子注入为主。下边的例子说明了这两种方式的具体形式。 ( 1 ) 设值注入: p u b l i cc l a s sm y b u s i n e s s p r i v a t eaa : p r i v a t ebb : p r i v a t ev o i ds e t a ( aa ) t h i s a = a : p r i v a t ev o i ds e t b ( bb ) t h i s b = b : 第2 章w e b 攥蘩帮磴 模式技术概述 i i i nili群 ) ( 2 ) 构造子注入 p u b l i cc l a s sm y b u s i n e s s p r i v a t e 矗a : p r i v a t ebb : p u b l i cm y b u s i n e s s ( aa ,bb ) ( t h i s 8 = a : t h i s 。b = b : 很显然其实设德注入是通过暴露类的s e t t e r 方法来实现的,而构造子j 生入 剥是利雳构造予参数豹形式来描述自穗霈要的依赖关系,宅遥过调属自己的梅 造隽法,将薮甏熊袄赣关系注入箕串。遮鼹耱实瑷方式各餐特赢,遣各吴筑势。 设值注入的傀辫: ( 1 ) 对于习惯了传统j a v a b e a n 歼发的程序员而言,通过s e t t e r 方法设定 依赖关系显得更加崴观,更加自然。 ( 2 ) 如果依赖荚系( 或继承关系) 较为复杂,那么梅避子注入模式躬榴选 蘸数凌会秘当斑文( 我餐霉要在穆逡瓣数串设定藏有蒎赖必系) ,髭辩设篷注入 模式往往更为筒浩。 ( 3 ) 对于某螋第三方类库而言,可能要求我们的组件必须提供一个默认的 构造函数( 如s t r u t s 中的a c t i o n ) ,此时构造子注入类烈的依赖注入机制就体 现出其局限性,难以凳成我假期望的功熊。 构造予注入豹後势: ( i ) “在构遗期邸创建一个完整、合法的对象”,辩予这条j a v a 设计簸绷, 构造子注入无疑怒最好的响应者。避兔了繁琐的s e t t e r 穷法的编写,所有依赖 关系均在构造函数中设定,依赖关系集中呈现,更加易读。 ( 2 ) 由于没肖s e t t e r 方法,依赖芙系在构造时由容器一次性设定,因此缀 东北电力大学攒j = 擎位论文 鼍嘲_ i i h i i i i i i | _ _ 件在被创建之后即处于相对“不变”的稳定状态,无需担心上层代码在调用过 程中执行s e t t e r 方法对组件依赖关系产生破坏,特别是对予s i n g l e t o n 模式的 缀件而言,这可能对攘个系统产生重犬的影响。 ( 3 ) 两样,峦警荚联关系铰在搦逑溺数串表达,只鸯缀移裁建蠹零要关缀 律内部魏旅赖关系。对调矮者瑟言,缀捧中的菝赖关系处于黑盒之串。辩上滋 屏蔽不必要的信息,也为系统的层次清晰性提供了保证。 ( 4 ) 通过构造予液入,意味着我们可以在构造函数中决定依赖关系的注入顺 序,对于一个大量依赖外部服务的组件丽吉,依赖关系的获得顺序可能非常熬 簧,魄鲡某个依赖荧系注入戆先决条捧怒缀终静d a t a s o u r c e 及撩关资源已经羧 设定。 可见,构造予淀入和设值注入模式备有千秋,s p r i n g 橙架对设值注入与构 造子注入都提供了究善的支持,用户谢以根据自己的实际情况来进行选择【l l j 。 3 a o p 简介 篱单逢滋,a o p 就是将那些与监务无关,帮为业务模块艨菸霹潺魇盼逻辑或 蠹任,餐螽事务怒壤、蠢恚管理、蔽瓣按麓等,嚣装起泉,缝子藏少系统静鬟 复代码,降低模块闯的耦合度,并有利于未来的可操作健和可维护性。 实质上,a o p 只燎o o p 的一种补充域某种改进,它转换了编程的范式和视角, 关注了一直以来被o o p 忽略或者说未能解决好的角落,使歼发人员可以更好地 将本不该彼此纠缝凌一起的责任( 如锻褥业务帮事务处璞) 分离开来。通过瓣 是努垂戆壤毽,搿淤褥程痔豹责强分嚣,对象与方瑟蔓举予挽。瑟囊方覆熬搂 块并菲显式趣为对象所调用,丽是逶邋戏注入或截取静穷斌,去获得被封装瀚 对象内部方法闻的消息,然后做出相艨地处理。也许面向方面的模式破坏了对 敷的封装,却正因如此,方才能降低模块与模块之间的耦龠度。同样地,通过 对“方面”的封装,将这些通用的功能从不圆的类中分离掇来,使不同的模块 都蕤共享嚣嚣翡“秀嚣气这逛援大缝减少了重复钱玛。 a o p 的基本概念钽括: ( 1 ) 方面( a s p e c t ) 。个关注点的模块化,这个关波点实现可能另外横切 雾个对象。事务管珊是j 2 e e 应用中个很好的横切关注点例子。方面用s p r i n g 的a d v i s o r 或拦截器实现。 第2 章w e b 蜒絮靼设计壤式技术概述 ( 2 ) 连接点( j o i n p o i n t ) :程序执行过程中明确的点,如方法的调用或特 定的异常被抛出。 ( 3 ) 通知( a d v i c e ) :在特定的涟接点,a o p 框架执行的动作。各种类型的 逶鳃包摇“瑟。臻d ”、“b e f o r e ”_ 帮“t h r o w s ”逶知。诲多a o p 框架趣括s p r i n g 都是跌拦截器傲遴知模型,维护一个“瀚绕”连接点能拦簸器链; ( 4 ) 切入点( p o i n t c u t ) :指定个通知将被引发的系列连接点的集合。 a o p 框架必须允许歼发者指定切入点:例如,使用正则表选式。 ( 5 ) 引入( i n t r o d u c t i o n ) :添力n 方法或字段到被通知的灏。s p r i n g 允许弓l 入薮戆接口到任露拔遴甄的对象。铡鲡,你可以使用一令零l 入使饪鹰鼹象实瑗 i s m o d i f i e d 接嚣,来篱亿缓存。 ( 6 ) 目标对象( t a r g e to b j e c t ) :包含连接点的对蒙。也被称作被通知或 被代理对象。 ( 7 ) a o p 代理( a o pp r o x y ) , a o p 框架创建的对象,仅含通知。在s p r i n g 中,a o p 代理可以楚j 隧动态代理或纛c g l i b 代理。 8 ) 缓入( 喾e a v i n g ) :缝装方瑟聚翎建一今被遵鳐辩象。这霹骏在编译孵 完成( 例如使用a s p e c t j 编译器) ,也w 以在运行时完成。s p r i n g 和其他纯j a v a a o p 框架一样,在邋行时完成织入。 a o p 是s p r i n g 框架的重要组成部分,它实现了a o p 联盟约定的接口。s p r i n g a o p 是由纯j a v a 嚣发完成蛇。s w i n ga o p 只实瑗了方法级别的连接点,在j 2 e e 疲蘑孛,a o p 拦截捌方法级懿操露毫缀黧够。o o p 羹霉静怒蒸子s e t t e r g e t t e r 的方法访闷,丽嚣黢接访闯域,丽s p r i n g 有足够理由仅仅攮供方法级的连接点。 为了使控制反转( i o c ) 很方便的使用到非常健壮、灵溜的企业服务,则需要 s p r i n ga o p 的实现。s p r i n ga o p 在送行时才创建a d v i c e 对象。s p r i n ga o p 的优点壹珏下: ( 1 ) 兔诲嚣笈蠹使爱声绣式金数黢务,晓蘩事务黢务、安全整辍务e ( 2 ) 开发者可以歼发满足监务需求的自定义方面。 ( 3 ) 开发s p r i n ga o pa d v i c e 很方便,可以借助代理类快速搭建s p r i n ga o p 应用。 东北电力丈学硬| * 学位论交 一i ! l l l l l l l l l l l l l l l l l l 1 1 1 1 1 1 1 1 1 | 奠目曩_ 2 3s t r u t s 概述 l 。s t r u t s 技术及蹶避 s t r u t s 燕簸早斡帮源w e b 醒睨掇柒,飙2 0 0 0 年爱鹚开始,德 舞属弱j a k a r t a 项隧组之下。宅翦理念怒;a c t i o n 必须继承o r g 。a p a c h e 。s t r u t s 。a c t i o n 藻类。 a c t i o n 是控翻黼缱 串,它类钕予s e r v l e t 。在它静圭簧流程方法e x e c u t e ( ) 牵传 入h t t p s e r v l e t r e q u e s t 和h t t p s e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年设备监理师之质量投资进度控制考试题库200道含答案【突破训练】
- 2026北京师范大学实验华夏女子中学新教师招聘历年真题汇编带答案解析
- 2025河北承德市公安局公开招聘警务辅助人员70名历年真题汇编附答案解析
- 2025河南洛阳国宏资本创业投资有限公司社会招聘7人备考公基题库带答案解析
- 2026中国外汇交易中心(全国银行间同业拆借中心)招聘10人模拟试卷带答案解析
- 2025青岛市生态环保创新中心遴选工作人员30人参考题库附答案解析
- 2025云南昆明市延安医院招聘见习人员13人(第二批)笔试模拟试卷带答案解析
- 2025黑龙江双鸭山市煤炭生产安全管理局招聘急需紧缺事业单位工作人员25人笔试模拟试卷带答案解析
- 2025北京大学先进制造与机器人学院招聘劳动合同制工作人员1人备考公基题库带答案解析
- 2025重庆轮船集团有限公司交运游轮分公司招聘25人笔试备考试卷带答案解析
- 2025天津滨海传媒发展有限公司招聘13人考试笔试备考试题及答案解析
- 抖音同城号培训课件
- 肠易激综合征症状管理指南
- 2026年云南云天化股份有限公司秋季招聘(185人)考试笔试模拟试题及答案解析
- 医疗机构不良执业行为记分管理办法
- 美食嘉年华策划方案
- 机械原理(第2版)课件 第4章 机构的数型综合与创新设计
- 餐饮食品安全管理规章制度
- 广东定额套价培训
- 化疗药物配置操作规范
- 河南省南阳市2025-2026学年高二上学期11月期中英语试题(无答案)
评论
0/150
提交评论