(通信与信息系统专业论文)j2ee快速开发框架的设计与实现.pdf_第1页
(通信与信息系统专业论文)j2ee快速开发框架的设计与实现.pdf_第2页
(通信与信息系统专业论文)j2ee快速开发框架的设计与实现.pdf_第3页
(通信与信息系统专业论文)j2ee快速开发框架的设计与实现.pdf_第4页
(通信与信息系统专业论文)j2ee快速开发框架的设计与实现.pdf_第5页
已阅读5页,还剩71页未读 继续免费阅读

(通信与信息系统专业论文)j2ee快速开发框架的设计与实现.pdf.pdf 免费下载

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

文档简介

j 2 e e 快速开发框架设计与实现 摘要 随着计算机硬件的普及,政府和企业日益依赖于信息化系统,基于j 2 e e 框 架的j a v a 应用已经成为企业商业和政府组织电子政务应用的中流砥柱。并且, 涌现了一批提高j 2 e e 设计和开发效率的优秀开源框架,如s t r u t s 、w e b w o r k 、 s p r i n g 及h i b e r n a t e 等。 本文探讨了j 2 e e 快速开发的理论和现实,其核心在于设计和实现了j 2 e e 快速开发框架平台,并且提出了j 2 e e 构件库、开发向导和代码模板库结合自动 生成构件应用代码的理论和实现。过去传统对构件库的研究和实现,均仅仅考虑 到功能模块到构件的封装,而忽略了让使用者如何方便快速的使用构件,使用者 需要详细阅读文档才能正确使用构件。本文提出和实现的j 2 e e 快速开发框架, 通过图形化的向导,可直接生成开发所需要的j 2 e e 构件应用代码。 本文还提出了j 2 e e 快速开发框架下业务环境、业务模块和应用系统构件的 扩展部署规范标准。基于x m l 描述和x s l 解析的代码生成模型,极大简化编写各 类j 2 e e 业务构件的工作,使平台构件的扩展变得方便。平台还可以直接兼容大 多数主流的j 2 e e 开发i d e ,生成的代码可以直接被这些主流i d e 所使用,可兼 容多数主流w e b 应用服务器。 本文致力于在j 2 e e 的n 层结构基础上,提高j 2 e e 开发的效率、缩短开发周 期及减少开发成本。在已引入该快速开发框架平台的一些j 2 e e 开发项目实践中, 它可以帮助减少3 0 以上的代码量。随着在该平台下功能构件的扩展,它可以更 多的帮助开发团队快速开发,替代程序员进行重复和通用的业务开发,让开发团 队专注于解决用户特殊的业务需求。 关键词:j 2 e e ;构件;构件库;软件复用;框架:m v c ;o rm a p p i n g x s l :x m l :s t r u t s ;h i b e r n a t e :w e b w o r k ; 复旦大学硕士学位论文 j 2 e e 捷逮拜蓑框絮设计萼实瑗 a b s t r a c t i nt h ep o p 鞋l a r i z a t i o no fc o m p u t e r ,g o v e r n m e n ta n dc o r p o r a t i o nd e p e n d m o r ea n dm o r eo ni n f o r m a t i o ns y s t e m j 2 e ef r a m e w o r kh a sb e e nal e a d e ro f c o r p o r a t i o nb u s i n e s sa n dg o v e r n m e n ti n f o r m a t i o na f f a i rd e v e l o p i n g t e c h n o l o g y f u t h e r m o r e ,t h e r ea r em a n ye x c e l l e n to p e n s o u r c es o l u t i o n s b a s e do nj 2 e ea r e h i t e t 娃r e ,s u c ha ss t r u t s ,w e b w o r k ,s p r i n g ,h i b e r a t ee t c 。 t h ep a p e ri n t r o d u c e st h e o r ya n di m p l e m e n to fj 2 e eq u i c k l yd e v e l o p i n g h a si m p l e m e n t e daj 2 e eq u i c k l yd e v e l o p i n gf r a m e w o r kp l a t f o r m ,a n dg i v e n ai d e aa b o u tt h e o r ya n di m p l e m e n to fg e n e r a t i n gc o m p o n e n ta p p l i c a t i o nc o d e b yai n t e g r a t e sw i t hj 2 e ec o m p o n e n ti i b r a r y ,d e v e l o p i n gw i z a r da n dc o d e t e m p l a t ei i b r a r y i nt h ep a s t ,t h e r ew a sav e r yi m p o r t a n tp r o b l e mi g n o r e d i nt h ef i e l do fc o m p o n e n t1 i b r a r y ,w h i c hw a sw h e t h e ru s e r sc o u l dm a k eu s e o ft h ec o m p o n e n t e a s i i y p e o p l ej u s tc o n s i d e r e dt h a t h o wt ob u i l d c o m p o n e n to u to ff u n c t i o nm o d u l e ,t h er e s u l tw a su s e r ss p e n tm u c ht i m e r e a d i n gd o c u m e n t sa n dm a s t e r i n gu s a g eo ft h ec o m p o n e n t j 2 e eq u i c k l y d e v e l o p i n gf r a m e w o r kp l a t f o r mi sa b l et og e n e r a t ej 2 e ec o m p o n e n t a p p li c a t i o nc o d eb yw i z a r d ,w h i c hc o u l dr e d u c ed e v e l o p i n gc y c l e t h ep a p e rh a sd e f jn e dt h r e e k i n d so fj 2 e ec o m p o n e n t s ,t h o s ea r e b u s i n e s se n v i r o n m e n t ,b u s i n e s sm o d u l ea n da p p li c a t i o ns y s t e mc o m p o n e n t 。 t h es t a n d a r d so fd e p l o y i n gt h o s ec o m p o n e n t sh a v eb e e ne s t a b l i s h e di nt h e p a p e r 。c o d eg e n e r a t i n gm o d e lb a s e do nx m ld e s c r i p t i o na n dx s lp a r s e r 。 s i m p t i f i e sa 1 1k i n do fj 2 e ec o m p o n e n tb u i l d i n g t h ep a p e rt r i e st or e d u c ej 2 e ep r o j e c td e v e l o p i n gc y c l ea n dh e l p s o f t w a r e c o m p a n yr e d u c ed e v e l o p i n ge x p e n d i t u r e s o m ej 2 e ep r o j e c t su s e d q j f r a m ep l a t f o r mh a dt e s t i f i e dt h a tq j f r a m ec o u l dh e l pd e v e l o p e rs a v e3 0 t i m ea t1 e a s t k e y w o r d s :j 2 e e :c o m p o n e n t :c o m p o n e n tl i b r a r y ;r e u s e ;f r a m e w o r k ;m v c o rm a p p i n g ;x s l ;x m l ;s t r u t s ;h i b e r n a t e ;? e b w o r k : 复照丈学硕士学拉论文 j 2 e e 快速开发框架设计与实现 第一章前言 1 1j 2 e e 快速开发框架研究背景 1 9 8 0 年,t i mb e r n e r s l e e 领导了e n q u i r e 项目,在这个项目中,诞生了互 联网最伟大的两样东西:h t t p 协议和w e b 架构。1 9 9 0 年,t i mb e r n e r s - l e e 领 导的小组推出了第一个w e b 服务器和w e b 图形浏览器。现在每天都有上十亿的用 户通过w e b 浏览器获取信息,同时也有无数企业、政府机关及组织通过w e b 浏览 器办公及提供服务。 基于w e b 的开发技术也经历了一个从简单到复杂、从静态到动态的过程。最 开始的w e b 服务器仅仅只支持静态的h t m l 文件,下图是基于w e b 的b s 主流开 发技术变迁: 婴竺型! ! ! ! ! 三二二二二 静态页面 r - r 一 c g i ( 1 9 9 3 1p e r l ( 1 9 9 s ) = 二二二二 动态页面 p h p 1 9 9 4 ) la s p ( 1 9 9 6 ) ij s p ( 1 9 9 8 ) j 一l - - i 嵌入h t m l 脚本语言 。i l 一,j l 、一 1 n e t ( 2 0 0 1 ) |j 2 e e ( 1 9 9 9 ) l 一l m 庞大的规范框架 l 一l - j j 图卜1 基于w e b 的b s 主流开发技术 基于w e b 的b s 开发技术从简单的h t m l 静态页面发展到n e t 和j 2 e e 两大开 发平台,这两大平台代表了b s 开发技术的发展潮流:快速、高度复用及构件化, 这最终都是达到快速开发可靠的软件产品目的。 2 3 自1 9 9 9 年发布以来,基于 2 e e 框架的j a v a 应用已经成为企业商业和 政府组织电子政务应用的中流砥柱,它的三大核心技术是s e r v l e t 、j s p 和e j b 。 开源软件运动的兴起,涌现出大量基于j 2 e e 的解决方案,如s t r u t s 、w e b w o r k 、 h i b e r n a t e 、j f r e e c h a r t 等,它们把j 2 e e 推上了b s 开发塔顶的位置。 复且大学硕士学位论文 j 2 e e 瓷逮努发框絮设诗与窭瑗 錾i 一2j 2 e e 体系及开源支持 强大的j 2 e e 体系和大量开源的优秀解决方案、应用及框架,使得大多数厂 窝秘企数选择j 2 e e 来开发b s 疲溪。虽然j 2 e e 秘絮嚣羲溅经镶b s 应爰嚣发卡 分方便,但随着软件系统的应用规模和复杂程度迅速扩大,开发人员越来越多希 黧在露敬上毒粪纛鬟e s 领壤粒臻麓这嚣黪获速牙发疆絮,舄户遴避w i z a r d 鑫动 生成大部分基本功能的程序代码,以达到快速开发目的。 在缀多j 2 e e 疲弱顿域,如金渡褒务寂援系绞,癌患化系统等,其串缀多数 务模块都存在相巍多的共性,如信息的增删改查、统计报表等。随着像s t r u t s 、 w e h w o r k 麓j 2 e e 分层黎捻,及懿h i b e r n a t e 这样撩久层对象殃射( o rm a p p i n g ) 解决方案的成熟,代码由此变得简洁优雅,并且其有高度的复用慌。这使褥快速 秀发这些焚牲豹业务模块娥为可毙,麸恧加快开发速度,城少开发周期和成本费 用。 1 2 快速开发研究与实现韵必要性 2 1 1 9 8 8 年,入届神话作裔,原i 醮操作系统0 s 3 受责入弗雷德璧克 布罄克斯提出一个著名悲观论断:没有一种单纯的技术或臀理上的进步,能够独 或缝承诺夜t o 年内大幅度魄提高软彳牛的警产率、胃靠性聋拜简洁健。 美国圈家标准和技术研究院的一份报告显示,占据世界软件销售额8 5 的是 大嫠静专精软箨,葡萁开发的失黢率却商达7 舔。究其覆鼷,禳羹簧一点怒程序 复照大学硕士学证论文 2 1 2 e e 抉遮舞发摇檠瀣诤与窭袭 爨髑把大爨熬粒翊耗费在庞杂重复戆代璐孛,经常陷于这些代码中不可是羧,嚣 无法将主疆精力熬中在用户一些独特的业务逻辑上。 嚣求分辑卜、 。”。+ 。+ 。”“。+ “。一、 r :- 分析设计卜、 l 。”“。1 ”“。“。+ ”。一、 ,- - - - - - - 、- - ,- - - 。:i ! 一 | 程序设计单元测试卜、 l。“。”“。“。“”“ r - - - - - - - + - - - - - - - - - - - - - - v v - n - - - - - - - - - : 整会溅试卜、 - - - - - - - - - - - - - 。w n - - - - - - - - - - - - - - - - - u - w n * * - - w - - - - - - - - - - - 一、 一,。,。!-!一 系统测试 _ 。_ _ - _ _ _ - - - - _ h - - _ - - - - - - - - - h ”。_ _ 、_ - _ _ _ - - - - 一 图l 一3 传统的开发流程瀑布模型 在传统开发流程下,浠求和设计中的镄误往往在最后的整合测试,甚麓是系 统溯试中才暴露磁来:或嚣在软件交彳寸使箱聍,考发现用户提供的鬻求是镣误装; 或者开发者无法储量真实的开发工作量,当他们认为只剩下3 0 的工作时,真实 燕那3 0 的王律确需要演糍7 0 甄斡开发资源。这蔼是企旺软彳孛齐发失黢率鲡就之 商的原因所在。 餮i - 4 快速开发模鏊 以对象复用、构件复用及设计模式为旗础的快速开发,可以解决程序员所困 惑静难蘧,帮韵开发霞酞抉速穗建一令哥滚囱壤户震示豹暇墅系统。在这个琢塑 系统的基础上,开发者反复和用户再进行霈求沟通,解决觅原型系统下需求传达 镑谩,最终过滤蹬大约2 溅左衷与嚣墼逶粥释决穷褰骞差髯懿特殊嚣隶。秀发鏊 队只需要专注于解决用户的特殊需求,专注于解决最消耗开发资源的那部分需 求。 蔓强犬学硬士攀拉论文 j 2 e e 茯蘧舜发捱檠设待与窭褒 1 3 国内井磺究瑰状 叁诗冀极软件诞生以来,鼗雾一壹邦致力予热织提毫开发效搴,缭短开发嚣 期及降低开发费用。构件技术是支持软件麓用的核心技术,它建立的面向对象的 复建上,惫廷麴传模型、撼述、分类与检索、复合组装、橡准他及较转构絮等内 容。 垦外多数软 牛基头,妇i 酬、s a p 都建立了囊已庞丈黪_ ;| 鸯件瘁,用于支持面 向构件的快速开发。在国内,北柬和上海簿城市郝开始联台本土i t 力量建立构 件痒,如上海软传中心承担的“上海构 牛艨及其应用研究”项爨,j e 京包撬软件 工其库、开放源码库、软件构件库、综合服务与管理平台的“三库婚平台”项目。 基予j 2 e e 的构件快速开发乎台上,我们嚣到一些来源于中国企业舶优秀商业产 晶,如上海瞀元信怠技术裔限公司的e o s 开发平台、上海技凭信息技术有限公司 的e x t r aw e b 应用开发平静。它们都提供了非常优秀的产脑和开发理念,灏向构 串稻韭务漉程的嚣发,筒菊的搡幸誊却可生成强大的j 2 e e 场能代磷。 表1 - 1 营元e o s 秘搜戈e x t r a 豹魄较 普元e o s技尤e x t r a 抟系结筏j 2 e e7 2 e e 用户自定义业务 支持不支持 操作复杂爱燮杂麓单 分层架构固定阗定 平台开敖 不嚣放不_ 开菝 1 5 】【1 6 】骜元e o s 产熬支持秀发者遂避鬻形器嚣蠡定义业务溅,宅蔟离予瓣 决1 0 0 的业务,而不是一般快速开发所认同5 0 一7 0 左右的通用业务。但不同开 发矮嚣懿粪求手交万纯,e o s 蓑要足够灵溪曩能嬲决这些爨求,这妊然蕊它戆搽 作变得复杂,用户需要相獭长时间才能掌糖精通e o s 。技尤e x t r a 正好相反,它 零兔诲受户妻定义妲务,擐终燕攀,毽霹予特殊嚣求,震娶蠲户鑫已修改 弋秘热 以完善。 它稍共弱豹缺点在于,不龛诲熙户宴幽选择j 2 e e 分屡架掏,舞发者只缝覆 用平台固定的体系架构。而在f f 2 e e 的实际开发中,开发者会根据需要选择不 同豹分层絮构解决方寨,如s t r u t s + h i b e r n a t e 、w e b o r k + s p r i n g + h i b e r n a t e 、 s t r u t s + s e s s i o ne 3 b + h i b e r n a t e 替。 同时它们没有警台开放,没有构 孛扩充艇范标准,这嫩铡了它们的j 2 e e 快 复照太学硬士学位谚文 4 j 2 e e 快速开发框架设计与实现 速开发平台被开发者们迅速接受。因为基于业务流的构件是非常庞大的,如果平 台没有构件扩充标准,平台只能应用在少数一些开发领域,因为平台开发者自身 熟知的业务领域是有限的。 1 4 本文研究实现工作的介绍 本文深入研究了j 2 e e 各种主流分层结构解决方案,总结和归纳了在j 2 e e 开 发常用的业务逻辑,在j 2 e e 各层面向对象复用的基础上,提出了基于x s l 的代 码生成模型,实现图形操作自动生成强大的j 2 e e 功能代码的j 2 e e 快速开发框架。 本文的设计实现部分,实现了一个灵活选择j 2 e e 分层结构,由向导生成业 务逻辑代码的j 2 e e 快速开发框架,框架的业务构件是可以被自由扩展定义,并 且定义了业务构件扩展的规范标准。它还可以直接兼容大多数主流的j 2 e e 开发 i d e ,修改它们的工程描述文件,使生成的代码可以直接被这些主流i d e 所使用, 同时可兼容多数主流w e b 应用服务器。 本文创新和实用价值有以下几点: l 、减少j 2 e e 开发3 0 一7 0 的代码量,缩短开发周期,降低开发成本。 2 、生成代码j 2 e e 分层结构可灵活选择和扩展。 3 、业务构件可自由扩展,提出基于x m l 描述和x s l 解析代码生成的灵活扩 展规范标准。 4 、提出了完整的业务构件接口、文档描述规范及a p i 标准规范。 1 5 论文结构 在本文第一章部分介绍了j 2 e e 快速开发框架研究、设计及开发实现的技术 背景,以及驱动研究开发实现的业界需求和趋势,j 2 e e 快速开发研究的必要性 和国内外研究现状,并简单介绍了本文所实现的一些工作和该课题的创新实用价 值。 第二章介绍了j 2 e e 快速开发框架所基于j 2 e e 的n 层结构,并介绍了实现 j 2 e e 的n 层结构的一些框架,阐述了j 2 e e 的n 层结构使j 2 e e 快速开发代码生 成在实现上具有可行性。 第三章阐述j 2 e e 快速开发框架的设计思想和实现目标,介绍了j 2 e e 快速开 发框架的组成结构和各部分的总体设计,还阐述了快速开发框架代码生成模型。 第四、五和六章分别详细阐述了j 2 e e 快速开发框架三大部分j 2 e e 构件类 库、代码模块库和开发向导的设计和实现。 第七章总结j 2 e e 快速开发框架研究成果和现状,对未来研究工作进行展望。 复旦大学硕士学位论文 3 2 e e 莰速群笈攫絮设诗毒安蕊 第二章j 2 e e 分层结构 2 1j 2 e e 分层结构 7 8 】 1 9 】 2 3 j 2 6 】 2 7 】龚蛩b f s 开发续稳怒接应瑶穗毙分鸯表示屡、堑务 层和数据层,区别于传统c s 的两层开发结构。 l 表示瀑( 臻声赛露r 1 。亡毛三刍三三三三三一l ,i l 一一 l 渣务屡叠务滋瓣) ; = 二二 二二 | 数撂艨数援摩) 圈2 一l 基于w e b 的b s 三层结构 招疆宽美静实凝了b s 懿三艨结秘,它逶避j s p 、s e r v l e t 、j a v a b e a n 、e j b 、 j n d i 、r m i 、j d b c 等技术来实现n 层结构。在实际的开发中,经常被使用的j 2 e e 分蒺结橡鸯二静,一静是辍量缀懿j 2 e e 三淫结穗,逶露趱予孛小麓模兹骏律应 用;一种熙重量级的j 2 e e 三层结构,它与轻量级相比,提供了究善的远糨调用 羹装、事致管理及安全瓿裁。 塑2 2 轻量级器疆三层结擒 轻量级的j 2 e e 三层构架基于j s p 、j a v a b e a n 、s e r v l e t 和j d b c 来实现,其 中j d b c 对虚数摆瀑,j a v a b e a n 对应业务鼷,j s p 帮s e r v l e t 对应淡示层。 复凰犬学硕士学位论文 6 j 2 e e 快速开发框架设计与实现 中o “1 、 厂 上j 上j 上1 匕a u u 工- 、 楚发 j s 南图掣j 请求v s e r 、l e t 善” l c l a s s 数据交换j | 珂用 弋= 二二j a v 志e a n w e bs e r v i c e 一、i je b2 0 n + 凸;,1 + 凸r l l l d u l l c i、 ( - d k n 0 1 由s e s s i o n i 调嘭jb e a n e j b o b j e c t 陟螽回方法调用 l e n t i t 、r 厂b e a n 图2 3 重量级j 2 e e 三层结构 重量级j 2 e e 三层结构除了包括轻量级技术。还包括j n d i 、r m i 、e j b 和w e b s e r v i c e 等技术。这种架构下,业务逻辑和数据访问部署在w e b 容器中,分别由 s e s s i o nb e a n 和e n t i t yb e a n 实现业务层和数据层,在w e ba p p l i c a t i o n 中的 j a v a b e a n 几乎不再承担业务逻辑任务,而只是通过j n d i 查找调用容器中的e j b 。 e j b 还可以被w e b s e r v i c e 所调用,作为服务发布。其它应用程序也可以通过e j b 接口或w e bs e r v i c e 来调用w e b 容器中的业务逻辑。 j 2 e e 借助大量设计模式,实现表示层、业务层和数据层进一步划分为更细粒 度的模式。提出了j 2 e e 的n 层结构,在三层架构中增加了两个中间层:位于表 示层和业务层之间的控制层,位于业务层和数据层之间数据映射层。 2 2j 2 e e 分层结构实现架构 尽管j 2 e e 通过j s p 、s e r v l e t 、e j b 及j d b c 等技术实现了基于w e b 的b s 三 层架构,但j 2 e e 框架没有提供简单易用的调用机制。幸运的是,开源社区无数 优秀的程序弥补了j 2 e e 这一缺陷,提供大量优秀的分层结构实现架构。 复旦大学硕士学位论文 j 2 e e 快速并发框橥竣诗与窭现 2 2 。1h i b e r n a t e 1 3 h i b e r n a t e 是一个野效潦健羁静o rm a p p i n g ( 瓣象关系获嚣) 帮轻量缀 的持久层中间件,它通过r u n t i m er e f l e c t i o n 提供了一种对象和数据库中的关 系表静跤慰扭裁。它是j 2 e e 分屡缝褥中数提层熬絮搀实瑷,在瑟翳订豹瓣83 + 0 标准中,h i b e r n a t e 已经替代e j b2 0 中庞杂的实体b e a n ,成为新e j b 标准的持 久堪标羰。 窝2 - 4h ib e r n a t e 关系瓣蒙浃射梳铜 h i b e r n a t e 的对象映射机制热通过x m l 文件来实现的。h i b e r n a t e 会在代码 第一次调耀h i b e r n a t e 连接静簿谈,报蕹获射x m l 文释,垒藏对象表映麓。在这 种机制下,上层姚务逻辑层所读霹的数据都是业务对象,而不是诸如r e s u l t s e t 没有魏离数据层静瓣象,获嚣麓德了篷务滋辑蘑麓健璃。 复曼太学硬士学经论文 1 2 e e 侠这拜发穰絮设译与实现 图2 - 5h i b e r n a t e 体系结构 h i b e r n a t e 支持o r a c l e 、d b 2 、s y b a s e 、s q l s e r v e r 、m y s q l 、p o s t g r e s q l 等 几乎所有的商业数据库,它可以便用外部提供的谶接池,也可以自已i 建立涟接池。 对监务邋辑应爆瀑寒说,疑寿熬底屡j d b c j t a ( 事务处理) 都被撞象了, h i b e r n a t e 会替你照管所有的细节。 2 2 2s t r u t s 1 2 j a k a r t as t r u t s 楚由开放源代码组织a p a c h e 开发,它髭让j 2 e e 实现 m o d e l v i e w c o n t r o l l e r 设计模式的w e b 层框架。 图2 6s t r u t s 的m v c 实现 s t r u t s 借瓒t a g l i b 税翻来实现褫图鸯监务藩静数舞交换,客户端翡请求均 发送到控制层的a c t i o n 擞,a c t i o n 根据请求调用业务逻辑,处璎完毕后,根据 籁毽结采,转商秘疰熬禚嚣。 复盥大学硕士学位论文 9 j 2 e e 映逮弹发框架设谤与实袈 圈2 一? s t r u t s 转发擦稍流耩 s t r u t s 构件与m c v 设计模式对应关系如下: j s p 茭瑟对应v i e w ,在s t r u t s 魏黎- v ,j s p 夏覆尽胃憝避受鑫褒激入我 码,s t r u t s 的h t m l 标记库使j s p 成为一个基本纯净的v i e w 层。 v a l i d a t o r f o r m 类黠夏嚣数据逶雩亍骏涯捡豢,过滤不舍趣刹豹数撂。 a c t i o n s e r v l e t 对应c o n t r o l l e r ,它根据s t r u t s - c o n f i g x m l 的配置文 磐遴行控裁转发。 a c t i o n f o r m 类把j s p 页面的f o r m 域自动封装成为个a c t i o n f o r m 对象, 避受了繁琰黥g e t p a r a m e t e r 襄s e t 搽终。 a c t i o n 类对应g o d e l 层,a c t i o n 淡执行商务逻辑,执行备种操作。然后 返潮a c ti o n f o r w a r d 类,让控毒l 嚣转发。 a c t i o n m a p p i n g 类它表示实际a c t i o n f o r m 、a c t i o n 和t i l e s 之间的映 射关系,也表示a c t i o n 及t i l e s 裁实际u r l 的映射荚系。 通过a p p li c a t i o n p r o p e r t i e s 实现语言国际化。 s t r u t s 较好静实现了m c v 模式,使各层代码明壤,橡互独立,使褥嚣麟开发霄更好的 对象继承性和代码复用性。 2 2 3w e b w o r k 1 4 w e b w o r k 蹙由o p e n s y m p h o n y 缝缓开发静,致力予缀律凭鞍代羁重用兹控 出式m v c 模式j 2 e ew e b 樵架。w e b w o r k 目前最新版本是2 1 ,现在的w e b w o r k 2 。x 前身是r i c k a r do b e r g 开发的襻e b w o r k ,键现在w e b w o r k 鼗经被拆分成了x w o r k l 和w e b w o r k 2 两个项目。w e b w o r k 作为一个实现了i o c 的轻摄级w e ba p p l i c a t i o n f r a m e w o r k 一壹备受开发嚣的青辣。 复盛大学硕士学也论文 l o 1 2 e e 茯逮群发框檠设诗莓赛褒 w e b w o r k 豹定袋霸s t r u t s 基本一致,与s t r u t s 甥比,w e b w o r k 在嚣个方嚣 明显区别于s t r u t s :一是w e b w o r k 在控制屡的a c t i o n 的定义上脱离了 h t t p s e r v l e t ,a c t i o n 的e x e c u t e 0 方法没有参数,不像s t r u t sa c t i o n 郧搀接 受r e q u e s t ,r e s p o n s e 参数,所以x w o r ka c t i o n 能够脱离w e b 环境被赢竣调用, 便于单元测试;二是w e b w o r k 强制实现了a o p 。i n t e r c e p t o r 相当予a s p e c t ,基 糖a r o u n d i n t e r c e p t o r 的b e f o r e 0 ,a f t e r 0 方法相当于a d v i c e ,x w o r k 也提供 了从煳l 配置文 牛装配c o m p o n e n t 的机制,相当予实现了对于c o m p o n e n t 的i o c 。 图2 8w e b w o r k 执行序列囤 w e b w o r k 的优势在于:它的8 c t i o n s 实际上是x w o r k 的a c t i o n s 不绑 定袭现技术,任何一种界酾都可敬使用它。所以即便需要支持多种客户端,a c t i o n 遮一部分仍然是完全可复用的。 2 4j 2 e e 分层结构与快速开发代码生成 j 2 e e 分层结构引入了大量的设计模式,基于过去软件开发的袈贵经验,使软 俸游复怒缝蠢扩震往交褥卡分强大,嚣这正是浚遴开发代秘生成缛疆实瑗耱基 复魑大学顼士学位论文 j 2 e e 快速开笈框架设计与实现 础。 如果没有j 2 e e 分层结构和大量设计模式的帮助,搿一个诸如保存或删除数 据鹣我玛是如戆复杂: 嚣弓| 入j 2 e e 分层结构瑟,写一个数攒僳存款代码黪鬻麓单,如下: p u b l i ca c t i o n f o r w a r de x e c u t e ( a c t i o n m a p p i n ga c t i o 蜥a p p i n g ,a c t i o n f o r m a c t i o n f o r m ,h t t p s e r v l e t r e q u e s th t t p s e r v l e t r e q u e s t ,h t t p s e r v l e t r e 8 p o n s e h t t p s e r v l e t r e s p o n s e ) t h r o w se x c e p t i o n f o o a c t i o n f o r mf o o a c t i o n f o r m = ( p o o a c t i o n f o l ) a c t i o n f o r m : f o o m o d e lf m = n e wf o o m o d e io : b e a n u t i l s c o p y p r o p e r t i e s ( f m ,f o o a c t i o n f o r m ) : f m 。s a v e o : r e t u r nn e wa c t i o n f o r w a r d ( a c t i o n m a p p i n g g e t i n p u t ( ) ) : 从代码可以蟹出,仅仅调用f m s a v e ( ) 即可完成数据保存工作,在快速开发 代粥生成餐褥模鳌墨,不同数据煞僳存,俄设需要整f o o 替换成鬟静袭名,这使 得快速开发代鸸生成实现上成为可能。 楚鼠大学硕士学位论文 $ 2 e e 快速群教摄架设计与实理 第三章j 2 e e 快速开发框架设计 3 1 设计愚想 轻量级构槊:j 2 e e 下众多轻量级框架,如s t r u t s 、h i b e r n a t e 、w e b w o r k 等, 箨酝缮了匿大瓣成功。其孛缀重要豹嚣黧怒一拿重蠢缓,竞整复杂貔f r a m e w o r k , 繁琐的规范和代码复杂度加燕了程序员学习和编程的负担,这与f r a m e w o r k 目的 遐背道而驰的。同时,重量级架构容易导致过度设计,并且造成代粥调试和测试 潮难,很难定经代码错误。 强调易蠲镶:f r a m e w o r k 懿荔用往才戆徐谨它的实髑往,鲡莱一个蔫户需簧 很长时间才自用你的f r a m e w o r k 写出第个“h e l l ow o r l d ”程序,他很难提起 学习和使用你的f r a m e w o r k 的兴趣。 蓑吝往:兼容整包菇三方嚣:一是戆够蓑套任 霉j a v a 主流i d e ,戆产生代羁 能够直接融入到i d e 的工程文件;二是能够产生的w e b 应用模块及a p p 应用色, 聊部署到不同的应用服务器;三是允许_ 歼发者使用各种主流的框架解决方案,如 s t r u t s + h i b e r n a t e 、w e b w o r k + h i b e r n a t e 笛。 封闭静瓣象调震:封闭豹对象谲露黎f r a m e w o r k 严格瓣定了每一蘑落藤的方 法,作为规范不得被用户所改变,就像m f c 中程序嫩死因果一样,严格的按照 m f c 的函数调用方法。用户继承f r a m e w o r k 类库中的熬类,通过面向对象语言的 o v e r r i d e 规锻犷震叁己豹囊泣逻辑及其它霞强。羹耀瓣瓣象谡霜镌绦了援产按 照f r a m e w o r k 的规范进行编码。 可扩展性殿标准化:一个优秀的f r a m e w o r k 是需要大量优秀的稷序员加以扩 袋竞善,我们掰设计这个f r a m e w o r k 更怒如此。因隽我们不仅希蘩f r a m e w o r k 能够产生一黧邋用静功能代褥,同时还能肖一些模袄标准,针对行娥黻及各个常 用的功能模块产生代码,如o a 模板可以产生一套功能复杂通用的o a 应用代码, 进销存模板可以产生通用进销存应用代码,开发者可以按照标准化的a p i 接口, 寒谤羧遥鎏交凌产生熬代酶,热a 囊邑开发祷骞豹一撩凌靛代璃。【4 】 i o 】 i l 】 3 2 快速开发框架设计实现目标 支持多种鼙境构檠:。陕遮并发框架反该提供露蘸豫糕开发主流使溺静嚣凌 构架,允许用户根据自己的滞用及开发翻队对不同构架熟悉情况选择环境构架。 快速开发框架提供这么几种环境构架供用户自由选择;s t r u t s + h i b e r n a t e 、 s r 旺t s + s p r i 珏g 十拜i b e r n 8 t e 、s t r u t s + s e s s i o n e j b + h i b e r n a t e 、 麓盥大学硕士学位论文 j 2 e e 快速开发框架设计与实现 w e b w o r k + h i b e r n a t e、 w e b w o r k + s p r i n g + h i b e r n a t e 、w e b w o r k + s e s s i o n e j b + h i b e r n a t e 。环境构架是可扩展的,以后可以根据需要不断把新的环境构架 加入到快速开发框架中。 支持多种主流i d e :快速开发框架本身会提供一个简单的i d e 环境,供用户 编辑和编译代码。但快速开发框架的定位并不是i d e ,而是一个构件代码生成平 台,因此快速开发框架生成的w e b 应用代码能够被其它主流i d e 直接编译使用。 提供通用构件:快速开发框架提供一些j 2 e e 开发经常需要使用通用构件, 如用户登录、单表的增删改查、多表的增删改查、单表的查询统计报表、权限控 制等。 简单易理解的构件部署规范标准:快速开发框架提供简单易理解的构件环 境、构件应用及构件模块的规范标准,开发者可以把自己熟知的业务构架方便的 加入到快速开发框架。 3 3 快速开发框架设计 1 7 1 8 3 0 3 1 j 2 e e 快速开发框架由三部分组成:快速开发构件类库、代 码模板库和开发向导。快速开发构件类库提供公共类、环境基础类库及构件基类: 代码模板库提供生成用户代码的模板,用于自动生成开发代码;开发向导给用户 提供一个良好的用户界面,让用户输入构件描述数据,或者从数据库取得表数据 并设置表字段属性描述。 图3 - 1j 2 e e 快速开发框架平台组成结构 代码模板文件库通过t e m p l a t e x m l 文件描述部署,快速开发构件类库由 c o m p o n e n t x m l 文件描述部署,最终统一部署到q j f r a m e c f g x m l 中,显示在开 发向导中。 复旦大学硕士学位论文 1 4 j 2 e e 快速开发框架设计与实现 图3 2j 2 e e 快速框架平台开发流程 开发者使用框架的新建工程文件向导,新建一个快速开发工程文件,开发者 也可以从其它i d e 如j b u i l d e r 、e c l i p s e 等已经建好的工程文件导入生成快速开 发文件。新建工程文件后,开发者必须新建快速开发环境,即j 2 e e 构件运行分 层结构解决方案,在同一工程文件下。开发者可以新建多个快速开发环境。 j 2 e e 构件按功能复杂度划分为业务模块和业务应用系统两类,业务模块是单 一功能构件,而业务应用系统是由多个功能构件聚合而成的应用系统。无论是业 务模块还是业务应用系统,都是依赖于构件运行环境。 3 3 1 新建快速开发工程 新建快速开发工程将新建一个工程目录和以q p x 后缀的工程文件,工程文件 是一个x m l 描述文件,用于描述开发者新建j 2 e e 模块和应用系统的信息。 复旦大学硕士学位论文 j 2 e e 快逮拜发框架蹬诗弩实袭 图3 - 3 快滤开发工程文件删l 描绘元素 快速开发工程文箨撵绘了工纛文锌名,工程文佟名,鼠其它谈妻羹j b u ii d e r 、 e c l i p s e 等i d e 的工程文件导入倍息及开发者需骠使用的工程环境。新建j 2 e e 禳浃稻瘦璃系统鹣售惠在e n ¥元素缝熹斡f i l e 嚣链掰擐离靛x m l 文转中攥绘。 复旦大学硕士学位论文 j 2 e e 捷逮辩发框檠竣诗茸实现 图3 4 新建工程u m l 图 囊建工程视豳类把输入攘息接入给薪建工程的巍务逻辑对象,魏 c r e a t e p r o j e c t m o d e l炎,然后调用 c r e a t e p r o j e c t m 0 d e l0 和 c r e a t e p r o j e c t d e s c r i b e 0 ,兹者憋输入傣息及解掰其它i 勰工稷文彳学获褥信息 封装成q j f r a m e c f g 对象,后者将q j f r a m e c f g 对象映射为快速开发工程文件,同 时调用s y s t e m d t i l 将q j f r a m e c f g 对象星入静态变量中。 3 3 23 2 程环境构件设计 快速开发工稷环境构件是j 2 e e 快速开发框架平台中最基础的构件,因为业 务模获;f 鲢妲务应丽系统梅件都依赖于环袭籀侔。环境构件设计嚣称有蘸方瑟:一 是必须实现目前一些主流的j 2 e e 分层结构解决方案;二是在设计中,抽裂化实 现,傻繇壤褐 牟可懿被扩究。 复魅丈学硕士学位论文 i 7 j 2 e e 快速开发框架设计与实现 | 快速开发框架应用环境 l 生成w a r 或e a r 应用 拷贝库文件 l 生成配置文件

温馨提示

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

评论

0/150

提交评论