




已阅读5页,还剩98页未读, 继续免费阅读
(计算机软件与理论专业论文)基于spring的轻量级web框架研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着i n t e r n e t 的日益普及,w e b 应用的复杂性不断地增加,其规模也在不断 的扩大,对于灵活性、可靠性和个性化都提出了更高的要求,这就给w e b 应用 开发带来了新的挑战。 在现有的w e b 开发中,m v c 模式对系统的界面表示、控制流程和业务逻辑 进行有效的隔离和封装提供了有益的思路,在此基础上j 2 e e 平台上出现了许多 基于m v c 模式的w e b 应用框架。健j 2 e e 体系的核心规范e j b 有不小的缺陷。 它对一般的w e b 应用显得过于笨重;而且理想的e j b 容器价格又很昂贵,容器又 绑定了企业许多用不着的功熊,从丽降低了系统的性价眈。 为此,本文引入了轻量级w e b 开发框架s p r i n g ,通过分析其原理和实现,剖 析了它的两大核心机制i o c 和a o p ,并结合m v c 模式设计思想,将它分为视图 层、控制层、业务逻辑层、数据持久层,并对每层的实现策略进行研究与改进, 如视图层加入a j a x 技术,业务逻辑层提出“开闭 原则( o c p ) ,持久层采用强 大盼j d b c ,最焉给邈了以s 面n g 框架为核心,整合可重用动态数据管理构件和 a e e g i 安全框架的轻量级w e b 应用框架的总体结构设计。 利用以上设计的基于s 州n g 的轻量级w e b 应用框架,结合实际项匿“物流信 息服务平台的开发详细阐述了基于该框架的系统设计与实现过程。针对系统的 层次耦合度与横切关注点等关键问题,论文提出了采篇控制反转模式来降低多层 w e b 应用系统中层与层之闯的耦合度,从而消除e 邸对业务逻辑层的强侵入性,采 用面向方面编程方法来处理应用系统中散落在各模块中的横切关注点,从而分离 了核心业务代码与辅助功慧代码,并弓| 入可重用动态数据管理构件来简化开发人 员操作数据库的复杂性,使数据库的维护更加方便,提高开发效率。整个系统层 次分明,具有良好的扩展性、移植性和可维护性。 关键词;轻量级w e b 应用框架,s p r i n g ,控制反转模式,面向方面编程,可重 用动惫数据管理构件 a b s 慷a :( 了r a b s t r a o t a tp r e s e n t ,w i t ht h ep o p u l a r i t yo fi n t e r a c ta n dt h ei n c r e a s i n g l ye x t e n d i b i l i t yo ft h e c o m p l e x i t ya n ds c a l ei nw e ba p p l i c a t i o n ,h i g hf l e x i b i l i t y ,r e l i a b i l i t ya n dp e r s o n a l i t ya l e n e e d e d ,w h i c hb r i n g san e wc h a l l e n g et ot h ew 砖a p p l i c a t i o n 。 i ne x i s t i n g 黜d e v e l o p m e n t ,m v cd e s i g np a t t e r no f f e r st h eh e l p f u lt r a i no f t h o u g h ti ns y s t e mi n t e r 蠡c o 、c o n t r o lf l o wa n db u s i n e s sl o g i co fg o i n go ne f f e c t i v e s e g r e g a t i o na n de n c a p s u l a t i o n t h u st h e r ee m e r g em a n yw e ba p p l i c a t i o nf r a m e w o r k b a s e do nm v c p a t t e ma tj 2 e ep l a t f o r m 。b u ta tt h es a m ot i m e , t h ec o r ec r i t e r i o no f j 2 e e * e j bh a ss e r i o u sd e f e c ti t s e l f i ti st o oc u m b e rf o rg e n e r a lw e ba p p l i c a t i o n ,a n dt h e p r i c eo fi d e a l e j bc o n t a i n e ra r ev e r ye x p e n s i v e , i tb i n d sal o to ft h ef u n c t i o n sw h i c h e n t e r p r i s e sd on o tn e e d ,t h e r e b yr e d u c e st h es y s t e mc o s t - e f f e c t i v e s 瓴i nt h i st h e s i sal i g h t w e i g h tw e bd e v e l o p m e n tf r a m e w o r k - s p r i n gh a sb e e n n t r o d u c e da n dh a sb e e nr e c o m m e n di t st w ok e yp a r t i c u l a rm e c h a n i s m l o ca n da o pb y a n a l y z i n gi t sp r i n c i p l ea n dr e a l i z a t i o n , a n di nc o m b i n a t i o n 谢饿m v cd e s i g np a t t e r n t h o u g h t ,t h i st h e s i sd i v i d e si tt of o u rl a y e r s :v i e wl a y e r 、c o n t r o l l e rl a y e r 、b u s i n e s sl o g i c l a y e r d a t ap e r s i s t e n c el a y e r , a n dr e s e a r c h e sa n di m p r o v e st h ei m p l e m e n ts t r a t e g yo f e v e r yl a y e r f o re x a m p l e , a 蠢豳a j a xt e c h n o l o g y i n t ov i e wl a y e r 、b u s i n e s sl o g i cl a y e rp u t s f o r w a r dt h e ”o p e n d o s e d ”p r i n c i p l e 、d a t ap e r s i s t e n c el a y e ru s e st h ep o w e r f u lj d b c 。a t l a s t t h i st h e s i sp r o v i d e so v e r a l ls t r u c t u r a ld e s i g no ft h el i g h t w e i g h tw e ba p p l i c a t i o n 歉l l l l eb a s e do ns p r i n ga n di n t e g r a t e d 诚墩a c e g if r a m ea n dr e u s a b l em a n a g e m e n t c o m p o n e n to f d y n a m i c 。 b yu s i n gt h el i g h t w e i g h t 恸a p p l i c a t i o nf r a m eb a s e do ns p r i n gh e r e i n b e f o r e , i n c o m b i n a t i o nw i t ht h ep r a c t i c ep r o j e c td e v e l o p m e n to fl o g i s t i c si n f o r m a t i o ns e r v i c e p l a t f o r m ,t h i st h e s i se l a b o r a t e st h es y s t e md e s i g na n di m p l e m e n t i o nc o u r s eb a s e do nt h i s f l a l n ei nd e t a i l i nv i e wo ft h ek e yp r o b l e mo fl e v e lc o u p l i n gd e g r e ea n dc r o s s c u t t i n g c o n c e r n s ,t h i st h e s i sp u t sf o r w a r dt ou s et h ei n v e r s i o no fc o n t r o lp a t t e mt or e d u c et h e c o u p l i n gd e g r e eb e t w e e nt h el a y e r so fm u l t i s t o r e yw 曲a p p l i c a t i o ns y s t e m ,t h e r e b y a v o i d ss t r o n gi n t r u s i v e n e s so fe j bt ob u s i n e s sl o g i cl a y e r , a d o p t st h em e t h o do fa s p e c t o r i e n t e dp r o g r a m m i n gm e t h o dt oh a n d l ec r o s s c u t t i n gc o n c e r n ss c a t t e r e db e t w e e n h m o d u l e so ft h ea p p l i c a t i o ns y s t e m ,t h e r e b ys e p a r a t e st h ec o r eb u s i n e s sc o d ea n dt h e a s s i s t a n tf u n c t i o nc o d e ,a n di n t r o d u c e st h er e u s a b l em a n a g e m e n tc o m p o n e n to fd y n a m i c t os i m p l i f yt h ec o m p l e x i t yo f o p e r a t i n gd a t a b a s e 、m a k e sd a t a b a s em a i n t e n a n c em o r e c o n v e n i e n ta n di m p r o v e sd e v e l o p m e n te f f i c i e n c y t h ew h o l es y s t e mh a sac l e a r l y a r r a n g e m e n ta n dt h en i c ee x p a n s i b i l i t y 、t r a n s p l a n tc a p a b i l i t y 、 m a i n t e n a n c ec a p a b i l i t y k e y w o r d s :l i g h t w e i g h tw e ba p p l i c a t i o nf r a m e , s p r i n g ,i n v e r s i o no fc o n t r o l ,a s p e c t o r i e n t e dp r o g r a m m i n g ,r e u s a b l em a n a g e m e n tc o m p o n e n to fd y n a m i c i i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:垂:艺选 日期:加口7 年6 月l e l 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名: 虚纽邈2 导师签 日期: 第一牵引言 。 论文背景及研究意义 第一章引言 互联网络的广泛应用,西益改变着人们的生活、工作与思维方式,各种w i e b 应用系统也应运面生,笼其是电子商务、电子政务的应用己经成为一个热门领域。 为了满足用户的需求,适应激烈的市场竞争,各种w e b 应用系统必须不断地改 进其蠹容和形式。软件系统的架构设计决定着软件产品的生死存亡,良好的开端 相当于成功的一半,因此选择正确合理的系统体系结构是关键【l 】。 为适应目前企业越来越需要扩展业务范圈、降低成本、缩短延迟时闻等需求, 提供这些服务的应用程序必须将现在的企业信息系统和服务与提供到每个用户的 商业功能相结合,并提供程序的高可用性、安全、可靠性和可扩展性等。出于很 多原因,这些服务的体系结构都被设计成为包含多层的分布式应用程序。j 2 e e 2 1 在一定程度上减少了开发这些多层服务的成本和复杂度,使得企业面对激烈的竞 争压力时可以快速的部署和增强自己麴服务。 j 2 e e 框架标准将一个系统划分为w e b 和e j b 两个主要部分,从设计上可以 抽象为表现层、业务层和持久层,这三个层次从一个高度将j 2 e e 分离开来,实现 了解耦的目的。因此,在实际编程中,大多数应用从功能上根据这三个层次来划 分,但要这样做,没有技术上约束限制是比较困难的,因此一般借助j 2 e e 具体技 术来实现,可以使用f _ , j b 规范实现服务层和持久层,w e b 技术来实现表现层【3 】。j 2 e e 应用虽然从总体上划分了三个层次,但在针对每层上的具体应用,要设计出可 维护性、高拓展性的软件设计霹标还是有一定的难度。酋先,w e b 层的技术主要 是j s p s e r v l e t ,在这层仍然可以表现业务逻辑和数据访问,那么其后果是w 曲 层与后台逻辑过于耦合,造成多层结构开发无法分工合作,其次,e j b 被认为是一 种重量级的高度侵入性的框架规范,重量级在于它的基于分布式的应用,离侵入 性是指它制定了众多的接口和编码规范,要求实现者必须遵从。重量级的后果是 部署复杂、运行慢、测试困难和代价高等,侵入性的怎果就是,一婪系统基于侵 入性框架设计开发,那么之后任何脱离这个框架的企图都将付出极大的代价。再 者,在中小企业缀应用的实际开发中,理想的e j b 容器价格很昂贵,容器又绑定 了企业许多用不着的功能,从而降低了系统的性价比。 电子科技人学硕十学位论文 针对上述问题,类似s p r i n g 这样的轻量级框架应运而生,所谓的“轻量级”, 并不是“功能少、设计简陋、实现粗糙 的代名词。它的设计哲学是“许多的应 用不需要分布式、不需要j 2 e e 中那些重量级的技术,譬如j n d i ,有必要将大多 数应用中不必要的技术隔离、改造。完全可以针对最常见、最简单的应用场景而 设计,等到有特殊需求的时候,再想办法解决问题”【4 】。 轻量级框架的发展已经成为推动j 2 e e 技术发展的重要推动力,已经成为一代 j 2 e e 技术构架的基础,目前,轻量级框架的发展非常的快,同一类型的框架不断 有新框架推出,原因在于各个框架都不是很完美。我们的基于s p r i n g 的轻量级框 架研究与实现也是基于这样几个出发点: 1 ) 框架技术在不断的发展,没有那个框架是完美或不需要发展的。 2 ) 不是所有的框架都很适合我们项目的应用,很多时候,我们只需要应用其 中的部分功能,我们需要适合自已项目能定制的的轻量级框架。 3 ) 很多框架的应用还是要了解框架本身的技术实现,应用我们实现的轻量级 框架,有技术基础和积累,应用或者定制方便。 4 ) 现在的很多框架只是集中在一个层次解决j 2 e e 的应用问题,我们提出的 轻量级框架可能是一个多层次的解决方案。 5 ) 希望我们实现的轻量级框架能成为比较实用和通用的软件开发半成品框 架或平台,能迅速的实现软件的构建,从而真正的实现软件工厂的目的。 1 2 本文的主要研究工作 本文从分析现阶段基于m v c 模式的w e b 应用开发中存在的问题入手,分别 从理论和实际应用的角度拟定解决问题的措施。由于j 2 e e 的核心e j b 对许多中小 企业的w e b 应用过于“厚重”,因此急需引入一种轻量级的w e b 框架满足需求, 降低系统的实现难度和开发成本,主要研究内容如下: 1 ) 详细介绍了s p r i n g 框架,剖析了它的两大中心机制i o c 和a o p ,探讨了 m v c 模式的设计思想,并将它应用在s p 打n g 框架当中。 2 ) 对基于s p r i n g 的轻量级w e b 框架的四层结构进行研究与改进:视图层通 过引入a j a x 技术实现浏览器客户端和服务器之间的异步交互,从而解决传统w e b 应用丌发当中由于采用同步交互方式所带来的页面过度膨胀、页面连接不连贯、 不顺畅等问题;业务逻辑层使用s p r i n g 的i o c 技术将各层之间的对象以松耦合的 方式组织在一起,视图层对象无须关心服务层对象的具体实现,服务层对象无须 2 第一掌萼| 言 关心持久层对象的具体实现,备层对象的调用完全蕊向接口,当系统需要重构时, 代码的改写量将大大减少:a o p ( 面向方面编程) 技术为声明式事务管理提供了 保障。 3 ) 为了简化开发人员操作数据库的复杂性,使数据库的维护更加方便,从 而提高软件开发效率,本文雩| 入了可重用动态数据管理构件,并对可重用动态数 据管理构件进行设计与实现;并分析了a c e g i 安全框架工作原理和实现机制;最 后将两者与s p r i n g 框架进行整合,得到一个以s p r i n g 框架为核心的安全性和性 能更高的轻量级w e b 应用框架。 4 ) 应用以上设计的基于s p r i n g 的轻量级w e b 框架,开发了一个实际项目一 物流信息服务平台,详细阐述了系统中各层的设计与实现。系统开发过程证甓, 相对于经典j 2 e e 体系架构,基于s p r i n g 的轻量级w e b 框架的应用系统的开发时间 大幅度缩短,系统层次分明,具有良好的扩展性、可维护性和可移植性。 本文旨在应用s p r i n g 框架作为系统体系结构的基础,并对其轻量级w e b 框袈 的结构进行研究与改进,得到一个适合我们项目的应用、比较通用和性价比高的 软件框架,并以此框架为基础构建东莞市常平镇物流信息服务平台,实现对常平 镇的物流产业信息统一管理,支持现代物流的发展,提高工作效率,加强信息化 处理,达到数据共享的嚣的。 3 本文的组织安排 本文共分为六章: 第一章篱要介绍了论文的研究背景、意义及论文主要王作和创新之处; 第二章介绍了m v c 模式,为了提高系统设计开发的灵活性、可复用性和可维 护健,论文提出采用w e b 框架来实现m v c 模式的思路,并显毖较了隳蒋几种较 为成熟的w e b 框架,引入了s p r i n g 框架。 第三章首先介绍了s p r i n g 框架的体系结构,详细分析了s p r i n g 框架和m v c 模式之间的对应关系,接着介绍了s 两n g 框架的的核心机制,涉及的重要内容有 i o c ( i n v c r s i o no f c o n t r o l 控制反转) 的主要的两种实现手法及优缺点比较,a o p ( 面向 方面编程) ,指出了s 研n g 框架最大的优点是对系统的无入侵性。在此基础上,可 以方便的与其它框架集成构成个完整的w e b 开发框架。 第四章分绍了s 两蘸g 框架的分层模型,并针对视图层、控制层、业务逻辑层、 数据持久层进行研究和改进,并分析了a e e g i 安全框架的工作原理和实现机制以及 电子科技人学硕十学位论文 设计实现了一种可重用动态数据管理构件,最后给出了以s p r i n g 框架为核心,整 合可重用动态数据管理构件和a c e 西安全框架的轻量级w e b 应用框架的总体结构 设计。 第五章介绍了物流信息服务平台的系统概述、功能模块需求分析、系统的业 务流程分析、总体架构设计及架构流程,并根据系统总体架构设计分别给出了视 图层、控制层、业务逻辑层、数据持久层、可重用动态数据管理构件的实现过程 及安全框架的配置过程,最后给出了系统的运行界面。 第六章总结了自己的工作,提出了第四章设计的框架的优点和还需要改进的 地方,并就轻量级w e b 框架的未来发展做出了展望。 4 第二章m v c 设计模式及其w e b 应耀框繁 第二章m v c 设计模式及其w e b 应用框架 本章主要介绍了m v c 模式,为了提高系统设计开发的灵活性、可复用性和可 维护性,论文提出采用w e b 框架来实现m v c 模式的思路,并且比较了目前几种 较为成熟的w 曲框架,并引入了s p r i n g 框架。 2 1m v c 设计模式 v p ,c t 5 】英文即m o d e l - v i e w - c o n t r o l l e r ,它是目前非常流行的一种软件设计模 式。m v c 首先被应用在s m a l l 谢珏8 0 环境中,是诲多交互和界霾系统的构成基础, 甚至在m i c r o s o f t 的m f c 基础类中也遵循了m v c 的思想。现在随着网路的飞速发 展,m v c 模式在w e b 应用开发中也得到了广泛的应用。 m v c 设计模式体现了一种“分治的思想,在实现三层b s 结构中具有得天 独厚的优势。它把应用程序的输入、处理和输如强制性的分开。m v c 把应用程 序分为三个模块:模型、视图和控制器。它们承担不同的任务。图2 1 显示了这几 个模块各自的功能及相互的关系【6 】。 诲改 |交 ,臣i | 蛭糕撕l | 蒸羹r 模型撒斩i 6 求 | 发送用户输入给控制器卜 兔 年投溅器选嚣擞鬻 捩 态 改 变 用户滁一i l 墨篇兰嚣嚣张艘新 - 萄穗蠡清臻一- 嘻秘4 k 图2 - 1m v c 模块动态协作火系图 1 ) 视图( v i e w ) 视图代表用户交互器面,对于w e b 应用来说,可以概括为h t m l 界面,但有 可能为x h t m l 、x m l 和a p p l e t 。一个应用可能有很多不同的视图,m v c 设计模 5 电子科技大学硕+ 学位论文 式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括 在视图上的业务流程的处理。业务流程的处理交予模型( m o d e l ) 处理。 2 ) 模型( m o d e l ) 模型就是业务流程状态的处理以及业务规则的制定。业务流程的处理过程对 其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业 务模型的设计可以说是m v c 最主要的核心,必须能够满足大多数客户的需求,包 括保证应用程序各组件的事务整合、维护并快速获取应用数据,支持事务工作流 的协调以及在已有应用程序中集成新的应用组件等。 3 ) 控制器( c o n t r o l l e r ) 可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请 求。划分控制层的作用也很明显,它清楚地告诉我们,它就是一个分发器,选择 什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做 任何的数据处理。例如,用户点击一个链接,控制层接受请求后,并不处理业务 信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返 回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。 用m v c 模式所得到的框架允许用户快速建立三层和n 层应用程序。该框架是 通过明确地定义应用程序的每个部分必须与之通信的不同接口来做到这一点的。 以下通过逐步分析应用程序中处理一个用户请求发生的事件来阐述基于m v c 体 系结构的标准流程n 1 ) 终端用户( 浏览器) 通过该应用程序发出一个请求。该请求被转发给控制器 软件服务。 2 ) 控制器检查该用户的请求,然后决定使用相应的业务逻辑来处理该请求。 接着,它把该请求转发给一个相应的业务组件( 模型) 去处理。 3 ) 模型含有处理该用户请求的所有业务规则,而且也执行终端用户所需要 的全部数据存取。代表终端用户检索出来的任何数据都被包装起来,并返回给控 制器。 4 ) 控制器接收从模型返回的数据,并选择把这些数据表示给终端用户的机 制,称之为视图,它把数据库的实际显示给终端用户。 5 1 控制器在处理完全请求之后把结果返回给终端用户。 图2 2 显示了m v c 体系结构的标准流程。 6 第二二牵辫e 设计模式及其飘b 应用框架 数据 2 2w e b 框架 图2 - 2m v c 体系结构标准流程图 在j 2 e e 体系中,应用m v c 模式进行系统开发比简单的j s p 开发要复杂的多, 它需要更多的时闷学习和掌握。露时新东西的雩| 进会带来薪的问题,首先开发者 必须基于m v c 组件的方式重新思考和设计应用程序。原先只要建立一个简单的 j s p 页面就能实现的功能要变成多个步骤的设计和实现过程。m v c 构架中必须实 现的页面和组件,必须进行附加的开发工作。为了降低m v c 模式实现的复杂度, w e b 框架适时的诞生了。w e b 框架大都是基于m v c 模式的,它们定义了各自的一 套规范,分别把迎务逻辑、显示和流程分开,开发者只要按照这套撬范进行开发, 就可以开发出低耦合度,高可维护性的w e b 程序。 2 2 1 框架的定义 框架是一种软件重用技术,它是一个应用软件系统的部分或整体的可重用设 计【粕。它规定了应用静体系结构,阐明了整个设计、协作构件之闻的依赖关系,责 任分配和控制流程,表现为一组抽象类以及与它们的实例之间的协作方法。采用 框架开发,系统的骨架已经完成,开发者所需要做的是向这些骨架中填入特定的 代码,这种做法不够灵活,不过付出的代价换回来的是整个系统结构的改善和流 程的固定化,从而提高了整个系统的可重用性和易修改健。 7 电子科技火学硕十学位论文 2 2 2w e b 框架的发展现状和趋势 2 2 2 1j 2 e e 平台的概述 j 2 e e 是一种利用j a v a 2 平台来简化企业解决方案的开发、部署和管理相关的 复杂问题的体系结构【9 】。它定义了丰富的技术标准,符合这些标准的开发工具和 a p i 为开发企业级应用提供了重要的支持。与其他多层体系平台相比,它的核心技 术及优势表现在几个方面:组件技术、s e r v l e t 和j s p 、j d b ca p i 、j n d i ( j a v a 命名 和目录接口) 和e j b 。 其中e j b 是一个服务器组件体系结构,是j 2 e e 的核心。它是j a v a 类于x m l 文件封装在一起的集合。j a v a 类必须遵循某些规则,并且提供明确的回调方法。 e j b 组件运行于应用服务器的e j b 容器内,容器已经实现了很多的系统级问题, 诸如事务、线程、安全性、远程调用、资源管理、持久化等。从而使得开发人员 专注于业务逻辑而不必时时为烦琐、艰深的系统底层问题所侵扰。 2 2 2 2 e j b 技术的特点及存在的不足 为了同时考虑对商业流程的处理和体现分布式组件系统应用程序的健壮性、 高效性和可扩展性。e j b 规范中定义了三种不同的组件【1o 】: 1 ) e n t i t y b e a n ,提供原始数据面向对象的封装,借助c m p ( 容器管理持久性) 获得0 r 映射能力。 2 ) s e s s i o n b e a n ,是面向服务的粗粒度业务组件,提供业务逻辑的封装,借助 e j b 容器管理的基础设施获得事务、安全性等基础设施的声明性编程能力。 3 ) m e s s a g e d r i v e nb e a n ,j m s ( j a v a 消息服务) ,通过异步消息与其它应用序 集成。 由此可见,三类e j b 组件在特性、功能和地位上有着本质的区别,而e j b 容 器为它们提供了“大一统”的支持和服务,但有些服务对般的w e b 应用中显得 笨重多余。e j b 有以下的几个缺陷: 1 ) c m pe n t i t y b e a n 作为事实上的映射方案,是一个不成功的技术】。 2 ) e j b 并不比p o j o ( 普通j a v a 对象,p l a i no l dj a v ao b j e c t ) 拥有更清晰的多 层体系结构,却不得不一股脑接收e j b 本身所有的基础服务,即便系统只需要很 少的几项服务,从而使得系统的性能降低、复杂度变高。 3 ) e j b 采取的组件模型对系统具有很强的“侵入性”。为了享用e j b 容器提 供的底层服务,业务组件必须声明e j b 的接口。使丌发者无法专注于业务逻辑本 第二章m v c 设计模式及其w e b 虑用框架 身。 4 ) e j b 在简化组件开发方面没有达到它承诺的水平,而有相反的趋势。 5 ) 在中小企业级应用的实际开发中,理想的e j b 容器价格很昂贵,容器又绑 定了企业许多用不着的功能,从而降低了系统的性价比。 2 2 2 3 轻量级w e b 框架 依据以上分析,可见在绝大多数的项目运用诸如e j b 等重量级框架并不是明 智之举,因为这些服务的组件提供的许多服务往往显得多余。再者e j b 试图将企 业平台环境开发中的底层问题一网打尽,搞出个一站式的解决方案来。这样的做 法造成e j b 本身的内部实现很复杂,令人难以把握和理解;同时降低了系统的性 能。 针对以上问题,各种轻量级框架应运而生。轻量级框架主要是指在j a v a 应用 程序开发环境中,简化的编程模型和更具响应能力的容器,旨在消除与传统j 2 e e a p i 有关的不必要的复杂性和限制,缩短应用程序的部署时间,从而提高开发效率。 目前,比较流行或即将兴起的轻量级w e b 框架主要有: l1s t r u t s 框架【1 2 1 s t r u t s 是一个老牌的w e b 应用框架,它是由a p a c h e 软件基金开发并维护的免 费开源软件。它包括一个前端控制组件、一系列的动作类、动作映射、处理x m l 的实用工具类、服务器端j a v a b e a n 的自动填充、支持验证的w e b 表单、国际化支 持,生成h t m l 等。s t r u t s 的主要缺点是缺少完善的权限设计,而且没有数据层的 支持,它的使用必须完全依赖于具体的框架类。它的视图部分也只支持j s p ,不能 很好的支持其它视图技术。 2 1 t a p e s t r y 框架【j t a p e s t r y 也是j a k a r t aa p a c h e 基金会下面的一个子项目。它是一个开源的基于 s e r v l e t 的应用程序框架,它使用组件对象模型来创建动态的,交互的w e b 应用。 t a p e s t r y 使得j a v a 代码与h t m l 完全分离,利用这个框架开发大型应用变得轻而 易举。并且开发的应用很容易维护和升级。t a p e s t r y 支持本地化,其错误报告也很 详细。但t a p e s t r y 的主要缺点是开发文档数量稀少而且内容不详尽,加之其自身的 流转控制功能较为薄弱,所以至今缺少运用了此框架的企业级应用。 1 ) j a t o 框架【1 4 】 j a t o 应用框架是i p l a n e t 应用程序框架的旧名。它是一个成熟的、强大的基 于j 2 e e 标准的w e b 应用程序框架。j a t o 适用于大中型规模的w e b 应用。j a t o 9 电子科技大学硕十学位论文 框架功能主要由i p l a n e t 应用框架核心、i p l a n e t 应用框架组件、i p l a n e t 应用框架扩 展三部分组成。应用框架核心定义了基本接口、对象协议、简单组件,以及i p l a n c t 应用框架程序的最小核心。j a t o 的主要缺陷是:它不是业界标准,没有定义页面 导航等。 2 ) s p r i n g 框架【1 5 】 与前述框架相比,s p r i n g 框架的实现机制很特别。将在第三章详细阐述这个框 架的细节,因为是本文重点。简单的说,s p r i n g 首先是一个开源的项目,而且目前 非常活跃;它是一个基于i o c ( i n v e r s i o no fc o n t r o l ,反向控制) 和a o p ( a s p e c t o r i e n t e dp r o g r a m m i n g ,面向方面编程) 多层j 2 e e 系统框架,但它不强迫开发者必 须在每一层中必须使用s p r i n g ,因为它模块化做的很好,允许开发者根据自己的需 要选择使用它的某一个模块;s p r i n g 实现了很优雅的m v c ,对不同的数据访问技 术提供了统一的接口,它采用的i o c 可以很容易的实现b e a n 的装配,它提供了简 洁的a o p 并据此实现t r a n s a c t i o nm a n a g e m e n t ( 事务管理) 等特性。 2 3 本章小结 在m v c 设计模式中,应用程序被强制分为三个核心部件:模型、视图、控制 器。它们各自处理自己的任务,有效的实现了数据层和表示层的分离,提高了系 统设计开发的灵活性、可复用性和可维护性。通常在开发系统时从头实现一套罄 于m v c 模式的w e b 框架是比较复杂的工作,也没有必要这样做,但是否套用某 一套现成的w e b 框架就行了呢? 显然同样不妥。在j 2 e e 体系中现成的w e b 框架己 经有很多,针对具体的软件项目如何选择一种合适的框架,或者更进一步裁剪、 订做适合项目所需要的框架才是合适的做法。 本章介绍了目前w e b 框架的发展现状和趋势,在这种发展趋势下出现的一些 主流的w e b 应用框架,它们各有特点,但也有明显的弱点。经过比较,本章最后 引入了s p r i n g 框架,将会在第三章详细介绍它。 1 0 第三章s p r i n g 应用开发框架 3 1s p rin g 框架 第三章s p r in g 应用开发框架 s p r i n g 是一个开源框架,由r o dj o h n s o n 创建,它是为简化企业级系统开发而 诞生的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个 组件,同时为j 2 e e 应用程序开发提供集成的框架。 3 1 1s p rin g 框架体系结构 图3 一l 是s p r i n g 框架较为完整的w e b 应用体系结构,在实际的设计中可以酌 情的增减或加入其它的框架。 s p r i n go r m h i b e r n a t es u p p o r t i b a t i ss u p p o r t j d os u p p o r t s p r i n g d a o i n f r a s t r u c t u r e t r a n s a c t i o n j d b cs u p p o r t d a o s l j p p 叫 s p r i n gw e b w e b a p p l i c a t i o n c o n t c x t m u l t i p a r tr e s o l v c r w e bu t l i t i e s s p r i n gc o n t e x t a p p l i c a t i o nc o n t e x t u is u p p o r tv a l i d a t i o n j n d ie j bs u p p o r ta n d l 屯m l o d e l i n gm a i l 图3 - l 基于s p r i n g 框架的完整w e b 应用体系结构 由上图所示s p r i n g 框架有7 个基本模块,这7 个模块是相互独立的,每个模 块都有一个对应的i a r 文件f 1 6 】: 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 g d a o :提供j d b c 的抽象层,使得丌发者不用去编写非业务功能的j d b c 电子科技大学硕士学位论文 代码,它同时能够提供编程方式和声明方式控制事务。 s p r i n go r m - 为当前流行的o rm a p p i n g 技术提供集成。 s p r i n g a 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 1 2s p rin g 对m v c 的支持 3 1 2 1s p rin g 的实现模式 对予现有较成熟的m v c 框架丽言,其解决的主要闻题无外乎下面a 部分”7 】: 1 ) 将w e b 页面中的输入元素封装为一个( 请求) 数据对象。 2 ) 根据请求的不同,调度褶应的逻辑处理单元,并将( 请求) 数据对象作为参 数传入。 3 ) 逻辑处理单元完成运算后,返回一个结果数据对象。 4 ) 将结果数据对象中的数据与预先设计的表现层相融合并展现给用户。 s p r i n g 框架所支持的m v c 模式的具体的实现是围绕分发器设计的, d i s p a t c h e r s e r v l e t 将请求分发到不同的处理器,框架还包括哥配置的处理器映射、 视图解析、本地化、主题解析、支持文件上传等等,其具体的类如图3 2 所示: ! n t e r n a l r e s o u r c e v i e w r e s o l v e r :is i m p l e u r l h a n d l e r m a p p | n g : + “ 一一。 j 图3 - 2s p r i n g 的w e b 实现方式 1 2 第三章s p r i n g 应用开发框架 3 1 2 2s p rin gm v c 框架的特点 s p r i n g 框架提供的m v c 有以下几个特点【1 8 】: 1 ) 清晰的角色划分:控制器、验证器、命令对象、表单对象和模型对象、 分发器、处理器映射和视图解析器等。 2 ) 直接将框架类和应用类都作为j a v a b e a n 配置,包括通过应用上下文配置 中间层引用。 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 ) 可定制的绑定和验证:将类型不匹配作为应用级的验证错误,这可以保 存错误的值,以及本地化的日期和数字绑定等。 6 ) 可定制的处理器映射,可定制的视图解析:灵活的模型可以根据名字映 射,处理器映射和视图解析使应用策略从简单过渡到复杂。 7 ) 可定制的本地化和主题解析,支持j s p ,无论有没有使用s p r i n g 标签库, 支持j s t l ,支持不需要额外过渡的v e l o c i t y 等 8 ) 简单而强大的标签库,它尽可能地避免在h t m l 生成时的开销,提供在 标记方面的最大灵活性。 3 2s p rin g 框架核心机制一lo c 和a o p i o c 模式与a o p 机制在s 砸n g 中占有着举足轻重的地位,是s p r i n g 框架的核 心部分。其中i o c 模式更是贯穿s p r i n g 框架始终的一个概念【1 9 1 ,它秉承了g o f 模 式的基本理念,即:“针对接口编程,而不是实现一。 3 2 1lo c 简介 i o c ( i n v c r s i o no f c o n t r 0 1 ) 模式,即控制反转,依赖注2 x , ( d e p e n d e n c yi n j e t i o n ) 是 对i o c 模式的一种扩展的解释。i o c 是一种用来解决组件( 实际上也可以是简单的 j a v a 类) 之间依赖关系、配置及生命周期的设计模式,对组件依赖关系的处理是i o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 特斯拉玻璃贴膜施工方案
- 2026届辽宁省大连高新区名校联盟化学九年级第一学期期末综合测试试题含解析
- 福建省泉州市鲤城北片区2026届英语九上期末调研试题含解析
- 外挂坐板外墙施工方案
- 市场策划工作总结报告
- 培训工作亮点总结
- 2026届河南省洛阳市涧西区洛阳市九上化学期中复习检测模拟试题含解析
- 2026届山东省济南市中学化学九年级第一学期期末经典模拟试题含解析
- 儿童托管服务政策解读
- 2026届山东省滕州市张汪中学九年级英语第一学期期末监测试题含解析
- 医院死亡报卡培训课件
- catia考试图纸题目及答案
- pos机风险管理办法
- 2025年京东集团招聘笔试指南与面试技巧
- 起重机械定期检查与维护方案
- 2025年行业机器人边缘计算技术应用与场景分析
- 国际物流运输合同(标准版)
- 2025年江西省高考物理真题
- 肝癌的中西医治疗
- 芳华电影介绍模板课件
- 四川省高中信息技术会考试题
评论
0/150
提交评论