




已阅读5页,还剩71页未读, 继续免费阅读
(计算机应用技术专业论文)轻量级j2ee框架的架构与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
太原理工大学硕士研究囊学位论文 轻量级j 2 e e 框架的架构与应用 摘要 在电子商务和企业级应用软件开发中,j 2 e e 技术占有十分显薯的地位尊 传统的基于e j b 的j 2 e 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 开发架构戆有效性。论文主要王 作如下: ( 1 ) 具体分析了s t r u t s 、s p r i n g 、h i b e r n a t e 在分层结掏憋轻塞级w e b 痘焉 的不同层次的作用,并整台这三种框架,设计了一种适合企业w e b 应溺的j a v a 遵瘸架构尊该架构将s t r u t s 中鹃业务逻辑交给s p r i n g 管理, 相关类用s p r i n g 的b e a n s 配置完成;由h i b e r n a t e 负责数据的持久化, h i b e r n a t e 的事务管理交壹s p r i n g 警理拳 ( 2 ) 在对轻量级容器的核心机制分析的基础上,重点讨论了其中控制反转 模式麴实现策略及特点摹论文采翅s p r i n g 轻量级容器,隽业务层组件 管理提供了一种有效的工具,实现了业务层组件和容器闻、组件和组 件闻低耦合,露时提薏了应用开发的灵活性和霹测试性奇 ( 3 ) 使用所设计的架构,开发了网上书店系统。表示层基于s t r u t s 框架开 发,并使震了j s t l 、v a l i d a t o r 、t i l e s 等缀粹;进务逻辑层基予s p r i n g 框架,使用了a o p 、i o c 组件;持久层使用h i b e r n a t e 框架实现。论 文遥过s p r i n g 整合各层资源,使用d a o 方式和数据持久层交互,以 s e r v i c e 方式向表示层提供服务论文采取了多种方式改善框架性熊, 弓| 入了缓存组件e h c a c h e 和数据库连接池组件p r o x o o l 尊逶过设置缓 i 太原理工大学硕士研究生学位论文 存机制,极大改善了系统的性能。 关键词:轻量级容器,s p r i n g ,h i b e r n a t e ,s t r u t s ,框架整合 太原理工大学硕士研究生学位论文 c o n s t r u c t i o na n da p p l i c a t i o no f l i g h t 砜吧i g h tj 2 e ef r a m e w o r k t h ej 2 e et e c h n o l o g i e sh o l da ne x t r e m e l yr e m a r k a b l es t a t u s i nt h e e - b u s i n e s sa n de n t e r p r i s ea p p l i c a t i o ns y s t e md e v e l o p m e n t s b u tm a n yp r o j e c t s d on o tn e e da d v a n c e dj 2 e ec h a r a c t e r i s t i c sa n dd i s t r i b u t e da p p l i c a t i o n st h a ta r e t h ea d v a n t a g e so ft h et r a d i t i o n a lj 2 e ef r a m e w o r k ,t h ec o m p l e xd e v e l o p m e n t , c o n f i g u r a t i o n ,d e p l o y m e n to fa d v a n c e dj 2 e ec h a r a c t e r i s t i c sa n dd i s t r i b u t e d a p p l i c a t i o nw i l lg r e a t l ys l o wd o w nt h ed e v e l o p m e n t a n di n c r e a s et h ee n t e r p r i s e s c o s t o nt h eb a s i so fs u m m a r i z i n gl i t e r a t u r ea b o u tj 2 e et e c h n o l o g i e s ,t h e t h e s i sa n a l y z e st h e s el i m i t a t i o n sw h e nt r a d i t i o n a lj 2 e ef r a m e w o r kw h i c hi s b a s e do ne j bd e v e l o p st h e e - b u s i n e s sa n de n t e r p r i s es y s t e m t h et h e s i s p r o p o s e sal i g h t w e i g h tj 2 e ef r a m e w o r ks c h e m ew h i c hi sb a s e d o no p e ns o u r c e f r a m e w o r k sa n dl i g h t w e i g h tc o n t a i n e r o nl a s tc h a p t e r s ,t h et h e s i sd e v e l o p st h e o n l i n eb o o ks t o r es y s t e mu s i n gt h es c h e m e t h er e s u l ts h o w st h es y s t e mb e a r s i n d e p e n d e n c yo fp l a t f o r m , a n dh a st h e s ec 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 dr e u s a b i l i t y a n dt h e nt h ep r a c t i c ep r o v e st h e l i g h t w e i g h tj 2 e ed e v e l o p m e n tf r a m e w o r ki sa v a i l a b l e w o r ki nt h et h e s i si s s h o w na sf o l l o w s : i i i 太原理工大学硕士研究生学位论文 ( 1 ) t h et h e s i sr e s e a r c h e ss 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 ,a n da n a l y z e s e a c hf r a m e w o r k sf u n c t i o ni nw e ba p p l i c a t i o n sw h i c ha l eb a s e do n h i e r a r c h i c a ls t r u c t u r e 。t h et h e s i sc o n s t r u c t sac o m m o nj a v aa r c h i t e c t u r e w h i c hi ss u i t a b l ef o re n t e r p r i s ew e ba p p l i c a t i o nb yi n t e g r a t i n gw i t ht h r e e f r a m e w o r k s t h ef r a m e w o r kh a n d ss t r u t sb u s i n e s sl o g i ct os p r i n g ,u t i l i z e s s p r i n g sb e a n sc o n f i g u r a t i o nt om a n a g e t h er e l a t e dc l a s s e s ;m a n a g e so b j e c t s r e l a t i o no fb e t w e e nc o n t r o l l e ra n dd a t aa c c e s so b j e c tt h r o u g hs p r i n ga n d i m p l e m e n t sd a t ap e r s i s t e n c eb yh i b e r n a t e t h ef r a m e w o r kt a k e ss p r i n gt o m a n a g et r a n s a c t i o n 。 ( 2 ) o nt h eb a s i so fa n a l y s i sa i m i n ga tl i g h t w e i g h tc o n t a i n e r sc o r em e c h a n i s m , t h et h e s i sf o c u s e so nt h es t r a t e g ya n dc h a r a c t e r i s t i co fi n v e r s i o no fc o n t r o l p a t t e r n 。u s i n gs p r i n gf r a m e w o r k ,t h et h e s i sp r o v i d e se f f e c t i v et o o lt om a n a g e b u s i n e s sl a y e rc o m p o n e n t s t h et h e s i si m p l e m e n t st h el o wc o u p l i n gb e t w e e n t h ec o m p o n e n t so fb u s i n e s s l a y e ra n dt h ec o n t a i n e r , a l s ob e t w e e nt h e c o m p o n e n t sa n dc o m p o n e n t s ,a n dm e a n w h i l ee n h a n c e st h ef l e x i b i l i t ya n dt h e t e s t a b i l i 哆o ft h ea p p l i c a t i o nd e v e l o p m e n t ( 3 ) t h et h e s i sd e v e l o p so n l i n eb o o ks t o r eb yu s i n gt h ef r a m e w o r kp r o p o s e di n t h et h e s i s 。t h ep r e s e n t a t i o nl a y e ri si m p l e m e n t e db ys t r u t sf r a m e w o r k ,a n d u s e st h e s ec o m p o n e n t ss u c ha sj s t l 、v a l i d a t o r 、t i l e s t h eb u s i n e s sl a y e r b a s e so ns p r i n gf r a m e w o r k ,a n du s e sa o pa n di o cc o m p o n e n t s t h es y s t e m u s e sh i b e r n a t ef r a m e w o r kt oi m p l e m e n tp e r s i s t e n c el a y e r a l lr e s o u r c e sf r o m l a y e r sa r ei n t e g r a t e db ys p r i n g d a ol a y e ra n dd a t ap e r s i s t e n c el a y e ra l e i v 太原瑾工大学硕士研究生学位论文 i n t e r a c t i v et h r o u g hs p r i n g s p r i n gp r o v i d e ss e r v i c et op r e s e n t a t i o nl a y e ra l s o t h et h e s i su p g r a d e ss y s t e m sp e r f o r m a n c eb yi m p o r t i n gc a c h ec o m p o n e n t e h c a c h ea n dp o o lc o m p o n e n tp r o x 0 0 1 i ts h o w st h es y s t e mp e r f o r m sb e t t e r w h e nu s i n ge h c a c h ea n dp r o x o o l 。 k e y w o r d s :l i g h t w e i g h tc o n t a i n e r , s p r i n g ,h i b e r n a t e ,s t r u t s , v 声明用明 本人郑重声明:所呈交的学位论文,是本人在指导教师的指导下, 独立进行研究所取得的成果。除文中已经注明引用的内容外,本论文 不包含其他个人或集体已经发表或撰写过的科研成果。对本文的研究 做出重要贡献的个人和集体,均已在文中以明确方式标明。本声明的 法律责任由本人承担。 论文作者签名: 日期:迦星:! 匕 关于学位论文使用权的说明 本人完全了解太原理工大学有关保管、使用学位论文的规定,其 中包括:学校有权保管、并向有关部门送交学位论文的原件与复印 件;学校可以采用影印、缩印或其它复制手段复制并保存学位论文; 学校可允许学位论文被查阅或借阅;学校可以学术交流为目的, 复制赠送和交换学位论文;学校可以公布学位论文的全部或部分内 容( 保密学位论文在解密后遵守此规定) 。 签名: 导师签名: 日期: 日期: 沙p 跫、毛、2 太原理工大学硕士研究生学位论文 1 1 研究背景 第一章绪论 随着信息技术的飞速发展,i n t e m e t 构造了无限的信息资源,它的普遍使用从根本 上改变了人们的生活方式和工作方式,也改变了企业的经营方式和服务方式。企业应用 系统复杂度越来越高,一些系统往往是构建在已有系统( 已有系统往往呈现多样性) 之 上的新应用,并且要求新应用能够不断的扩展来满足业务的变化,同时系统在性能和安 全性方面的要求也很受关注。随着企业应用的复杂度的增加以及对系统要求的不断提 高,应用开发商的开发成本和对开发所需的响应时间均成几何级数上升。因此许多开发 商不得不开发自己的中间件以降低成本,缩短响应时间。但是这样做也存在隐忧,由于 没有统一的标准,不同开发公司的中间件产品不能保证组装在一起形成更强的服务。每 个行业的企业总有一些核心业务长期保持不变,新时期的新业务基本上都是围绕核心业 务展开的。很长时间以来,1 t ( i n f o r m a t i o nt e c h n o l o g y ) 技术的变化与企业业务的扩展 存在着很大的矛盾:当企业发展新业务后,如何保证原有业务的系统能稳定运行,同时 让新业务也能获得r i 的支持;而当r r 技术出现重大进展后,又如何对原有业务的信息 化进行新技术改造,获取更好的服务。一方面是企业不断开展新业务,另一方面是新技 术更新换代,在这两种情况下,如何重用原有的技术成果。在组件化思想运用到实践以 前,解决这些问题的指导思想就是重新开发。这样做就造成每次技术革新,企业都需要 重新花费资金开发系统,重新适应新系统;而跟不上新技术发展的软件开发商会被淘汰; 软件开发人员需要把很多精力放在跟踪学习新技术上,在领悟业务上花的时间减少,导 致开发的系统与企业业务总有一定差距。 针对以上的开发困境,s u n 公司( s u nm i c r o s y s t e m s ,i n c ) 提出了j 2 e e ( j a v a2 p l a t f o r me n t e r p r i s ee d i t i o n ,j a v a 2 平台企业版) ,目的是满足企业应用的高要求,降低 开发商的成本并减少开发商的响应时间。为了实现该目标,s u n 对j 2 e e 方案进行了定 义( 即j 2 e e 规范) ,在j 2 e e 中采用了分层体系,提出了“容器 和“构件 的概念, 并明确了容器的职责、构件的职责及它们如何协调运作,j 2 e e 包含了j s p ( j a v a s e r v e r p a g e s ) ,x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) ,e j b ( e n t e r p r i s ej a v a b e a n ) ,j t a ( j a v a t r a n s a c t i o na p i ) 、j d b c ( j a v ad a t ab a s ec o n n e c t i v i t y ) 等13 种技术【3 7 】。 j 2 e e 典型的分层结构如图1 1 : 太原理工大学硕士研究生学位论文 a p p l i c a f i o n l 圈c l i e n t li 圄圄 c l i e n t w e r 虢b t i e r b u s i n e s s t i e r e i s1 l t i e r j 图1 - 1j 2 e e 多层应用【1 】 f i g u r e l 1j 2 e em u l t i f i e r e da p p l i c a t i o n s c l i e n t m a c h i n e j 2 e e s e r v e r m a c h i n e d a m b a s e s e r v e r m a c h i n e 客户层( c l i e n t t i e r ) :客户层与企业信息系统的用户进行交互以及显示根据特定逻辑 规则进行计算后的结果。 w e b 层( w e bt i 神:类似客户层,可能包含j a v a b e a n s 组件来管理用户输入信息并且 把输入发送给业务层的e n t e r p r i s ej a v a b e a n s 处理。j a v as e r v l e t 和j s p 组件作为w e b 组 件。 业务层( b u s i n e s st i e r ) :业务逻辑的实现,在基于j 2 e e 规范构建的企业信息系统中, 将解决或满足特定业务领域逻辑规则的代码构建成为业务层中的e n t e r p r i s ej a v a b e a n s ( 薹 腊) 。e j b 组件可以完成从客户端应用程序中接收数据、按照业务规奚| j 对数据进行处 理、将处理结果发送回客户端等功能。业务层和w e 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 st i e r f 3 7 j ) :用于为业务逻辑提供数据。它可以是 数据库系统,也可以是企业的e r p ( e n t e r p r i s er e s o u r c ep l a n n i n g ,企监资源规划) 系统、 大型机事务处理系统( m a i nf r a m et r a n s a c t i o np r o c e s s i n g ) 或者其他遗留信息系统。e i s 层运行企业信息系统软件,是系统数据持久性的保证。 j 2 e e 解决方案能够迎合企业应用的高要求、离复杂性,所以获得了广泛认可,形 成了潮流,出现了中闻件舞发和构彳孛开发嘲的概念。j 2 e e 架构以e j b 技术为核心,会 话b e a n ( s e s s i o nb e a n ) 和实体b e a n ( e n t i t yb e a n ) 在平台中占有中心地位。e j b 将很多 底层技术:缓存、池、安全以及事务封装在特别的e j b 服务器中,这样解决了开发人员 2 、,j、,l;_、 壶 太原理工大学硕士研究生学位论文 的很多工作,j a v a 技术重心转向j 2 e e 服务器( 也称应用服务器或中间件服务器) 。中间 件开发商按照j 2 e e 规范进行容器开发,产生了如w e b s p h e r e 、w e b l o g i c 、j b o s s ,构件 开发商按j 2 e e 规范专心开发业务构件,然后部署到中间件中形成应用。 e j b 很好地把企业级服务整合在容器模型中,不仅管理业务对象,而且为受管对象 提供声明性中间件服务,是一步到位的解决方案。e j b 推出后,基本上所有的大型企业 都选用j 2 e e 平台,而选用j 2 e e 平台实际就是选用e j b 。e j b 强调的高可伸缩性为大型 企业不断发展提供了最大的发展空间,不再因为企业快速发展导致整个企业系统结构都 得发生根本变化,这是使用e j b 开发的优势。 但由于e j b 的目标一开始就是定位在高端客户的,技术上相当复杂,导致众多开发 者未能真正掌握,由此产生了很多失败的项目,以e j b 为中心的开发方法在实践中的效 果并不理想。f _ , j b 提供了企业服务,但用它解决许多问题时都显得过于复杂,因此是一 种重量级架构方案。 如今,许多业务仍然需要企业服务,但开发者希望采用轻量级基础架构和更简单、 透明的存储机制替代e j b 进行j 2 e e 开发。轻量级j 2 e e 架构是基于轻量级容器 ( 1 i g h t w e i g h tc o n t a i n e r ) 的,业务对象使用p o j o 实现,由容器控制运行,开发不再依 赖容器,开发人员可以在应用程序之外测试对象。 轻量级容器和重量级容器的区别在于:重量级容器强迫使用指定的编程模型,而编 程模型复杂( 譬如对于实现一个s e s s i o nb e a n ,开发人员至少需要三个j a v a 文件:h o m e 接口、组件接口、b e a n 实现类) ,开发者不仅需要编写所有的实现类,还要主动执行 j n d i ( j a v an a m i n ga n dd i r e c t o r yi n t e r f a c e ) 3 1 查找来访问每一个e j b 。使用业务对象的代 码必须依赖于j n d i 和e j ba p i ,业务对象对容器有依赖性。轻量级容器则不是,它的 特征包括【4 】: 基于p ( ) j o 的编程二轻量级容器对业务对象没有侵犯性。它不强迫执行或者依赖 容器的a p i 。 生命周期管理一轻量级容器管理放入其中的对象的生命周期。最低限度下,它们 实例化并销毁对象。 依赖性解析一轻量级容器提供了一个普通的依赖性解析策略。多数容器支持依赖 注入( d e p e n d e n c yi n j e c t i o n ,d i ) 的策略。还有一些支持j 2 e e 风格的策略,称之为服 务定位器( s e r v i c el o c a t o r ) 模式瞪1 1 6 。 一致的配置一轻量级容器提供一致配置服务。 服务关联一轻量级容器提供一种将服务与容器中的对象相关联的方法。 3 太原理工大学硕士研究生学位论文 轻量级容器有许多胜于重量级容器架构的优点,例如可以使用一个更加简单、基于 p o j o 的编程模型。使用p o j o 编程的好处是应用程序易于测试。j a v a 对象也可以在 容器外运行,例如在一个测试用例中。通过依赖注入,轻量级容器减少了组件问的依赖 性,保护了开发者在代码上花费的心血,开发人员可以在容器间移动应用程序的大部分 代码。 综上所述,j 2 e e 开发正在经历变革,e j b ( 2 x ) 编程逐渐被轻量级容器取代,基于轻 量级容器的开发正慢慢成为j 2 e e 开发的主流,各种开源软件对j 2 e e 开发提供强大的支 持。j 2 e e 开发向着更简单、更易用的方向发展。 1 2 研究现状 现在开源社群有很多人投入很多精力来研究传统主流j 2 e e 技术( 主要指e j b 2 x 技 术) 的替代品,这可以看作是开发人员对主流j 2 e e 技术的笨重和复杂作出的回应。j 2 e e 开发者常遇到的一个闯题就是如何组装不同的程序元素:譬如w e b 控制器体系结构和 数据库接口由不同的团队开发,彼此间几乎一无所知,如何使它们协同工作是需要考虑 的问题。很多框架尝试过解决这个问题,有几个框架提供了更通用的“组装各层组件 的方案,这样的框架通常被称为“轻量级容器。这些容器能够帮助开发者将来自不同 项目组的组件组装成一个内聚的应用程序。在这些轻量级容器的背后有着同一个模式, 这个模式决定了这些容器进行组件装配的方式。这个模式被称作“控制反转( i n v e r s i o n o f c o n t r o l ,i o c ) ,也被称作“依赖注入( d e p e n d e n c yi n j e c t i o n ,d i ) 。这个模式的强标 是将组件的配置与使用分离开【7 】。依赖注入的实现类型有构造子注入( c o n s t r u c t o r i n j e c t i o n ) 、设值注入( s e t t e ri n j e c t i o n ) 和接口注入( i n t e r f a c ei n j e c t i o n ) 。 现在流行的轻量级容器有s p r i n g 、p i c o 、h i v e m i n d 技术,而s p r i n g 是其中的佼佼 者。 s p r i n gf r a m e w o r k s p r i n gf r a m e w o r k 具有功麓齐全的容器、面向方面编程( a o p ) 模型和企鲎开发所 需的所有集成代码,它为数百个j 2 e e a p i 和其他开源框架提供了轻量级容器和胶水代 码( g l u ec o d e ) 。s p r i n g 主要支持设置注入,同时也支持构造子注入模式。s p r i n g 对实际 开发产生了深远的影响:首先,我们的组件不需要实现框架指定的接口,因此可以轻松 鲍将组件款s p r i n g 中脱离,甚至不需要任何修改( 这在基予e j b 框架实现的应用是难 以想象的) ;其次,组件间的依赖关系减少,极大改善了代码的可重用性。s p r m g 的依 赖注入机制,可以在运行期为组件配置所需资源,无需在编写组件代码时就加以指定, 4 太原理工大学硕士研究生学位论文 从而在相当程度上降低了组件之间的耦合fs p r i n g 使用x m l 配置,更重视灵活性, 使用x m l 配置文件可以做任何事情。s p r i n g 有一个充满活力的社区和一个支持该框架 的职业服务公司h t e r f a c e 2 1 ,正是有了良好的支持,s p r i n g 才能获得更好的发展。 s p r i n g 通过使用胶水代码( g l u ec o d e ) 添加大量的b e a n ,从而超越了轻量级容器。 使用b e a n 和代码,可以插入使用j 2 e ea p i 的不同组件,从j d o 到h i b e r n a t e 的持 久性引擎,工作流引擎,视图技术等等。s p r i n g 正在快速成熟,并将在可预见的未来成 为一个参与者。 p i c o c o n t a i n e r p i c o c o n t a i n e r 是一个a p a c h ej a k a r t a 项目,p i c o c o n t a i n e r 是一个“微核心 ( m i c r o k e r n e l ) 的容器【s 】。它与s p r i n g 的主要区别之处是在风格上面。 p i c o c o n t a i n e r 的主要特点包括:( 1 ) 将对象放入到p i c o c o n t a i n e r 容器的过程是在 j a v a 代码中进行的,因此,开发人员首先依赖构造方法进行注入,容器中对象的依赖关 系是运行时决定的。( 2 ) p i c o c o n t a i n e r 不强调依赖关系抽象到代码之外,比如保存到 x m l 文件中,因此它不使用x m l 配置文件,而是使用j a v a 代码来注册容器中的 b e a n 。 ( 3 ) p i c o c o n t a i n e r 主要使用构造子注入。它根据接受管理的构造子定义来判断 依赖关系。p i c o c o n t a i n e r 也支持设置注入,但没有像s p r i n g 那样提供众多的附加功能。 p i c o c o n t a i n e r 也远不及s p r i n g 所支持的服务数量。( 4 ) 它主要是一个依赖注入容叠, 而不是完整的应用框架,因此主要用于为更大型的框架提供i o c 容器模块【9 】。 如果不需要s p r i n g 提供的所有企业服务时,p i c o c o n t a i n e r 绝对是首选。但是它发 展缓慢,得到的支持不多。 h i v e m i n d h i v e m i n d 也是开源的轻量级容器,它比p i c o c o n t a i n e r 拥有更多的支持模块,但 少于s p r i n g 支持的模块,尽管如此h i v e m i n d 允许开发人员使用s p r i n g 的一些b e a n 和 服务。h i v e m i n d 的服务都是p o j o ,所以这些服务可以被很容易访问和组装。每个服务 都是一个j a v a 接口的实现,h i v e m i n d 负责将服务实例化和正确配置。和s p r i n g 一样, h i v e m i n d 支持自定义格式的组件依赖装配和容器依赖自动装配。当使用依赖自动装配 时,h i v e m i n d 会自动从多个定义的模型中去查找依赖的属性,并将它们转化为j a v a 值 对象( v a l u eo b j e c t ) 传入数据对象中。h i v e m i n d 只能使用单虚拟机来组织j a v a 代码【9 】。 h i v e m i n d 包含两个重要思想:( 1 ) 称为模块的封装概念,松散的基于e c l i p s e 插 件模型,使开发人员在粗粒度级别管理依赖性。( 2 ) 称为h i v e d o c 的文档工具为容器 中的模块生成参考文档,这非常类似于使用j a v a d o c 为j a v a 代码生成文档 4 1 。 5 太原理工大学硕士研究生学位论文 1 3 课题研究的目的和主要内容 在软件开发中,做到源代码的最大复用,减少维护成本,使现有的软件剩于扩展并 且做到尽量减少对原有系统的改动是软件工程关注的重要问题。它对于实际项目的应用 实施管理具有很大的经济和社会效益。在以往的很多企业w e b 系统中,壹予很少运用 框架技术,致使现在很多遗留的企业w e b 系统可扩展性能很低,需要花费很大成本维 护,有些系统甚至被凌弃。如今的应用开发,人们不是一切从头开始,焉是积极使用一 些现有的框架。实践证明,在企业w e b 实施应用中,选用合适的框架能大幅度提高软 件质量和软件开发效益,对软件的维护和扩展具有重要俸用。本文的主要曩的是探讨基 于j 2 e e 平台的开发过程,寻找符合企业级应用软件系统需求特点的开发方法并运用到 实践审,糍望达到的星的是重用设计和代码,以简化开发的复杂性,减少编码和测试实 践,提高工作效率,提高系统的可扩展性和可维护性。 另外,对已有的优秀框架进行深入研究两不是仅仅停罄在使用的阶段,领悟其中的 设计理念,不仅可以更高效地付诸实践,提高开发水平,设计出高效健壮的系统。 论文探讨的问题主要有:轻量级j 2 e e 架构的思想和趋势,开源社区的各种组件的 特点,模式在框架技术中的重要作用。通过对j 2 e e 平台体系结构、m v c 设计模式及当 前几种主流技术框架的深入学习及研究,并结合自己的实际开发项隧,着重阐述了如何 将s t r u t s 、s p r i n g 、h i b e r n a t e 三者有效的整合起来。通过以上几种框架的分析并应用于 一个在线书店系统。为了提高系统性能,对缓存优化技术做了深入分析,并引入了两个 优秀组件改进缓存性能。 l 。4 论文结构 本论文共分六章: 第一章:介绍课题的选题背景、研究现状及本课题研究的主要内容。论文是基于轻 量级容器的,因此主要讨论了现阶段一些典型轻量级容器的特点。轻量级容器是j 2 e e 构架的核心。 第二章:探讨在j 2 e e 平台体系结构下软件开发相关理论,主要包括框架、模式、 i o c 和d a o 策略。本章内容是论文的技术基础。 第三章:对当前流行的开源框架s p r i n g 、h i b e r n a t e 的体系结构和运行机制进行了深 入研究分析,总结了各翥的优势和适用范围。 第四章:设计轻量级架构方案,讨论了s t r u t s 、s p r i n g 、h i b e r n a t e 框架整合方案, 由于这些框架彼此没有联系,它们没有提供针对彼此的特别实麓方案,只是傈留了通用 6 太原理工大学硕士研究生学位论文 的接口来实现和其他组件的联系,因此多种框架进行整合就具有多种途径,本章做了较 详细的论述,根据论文作者的开发水平和项目实际情况选择了合适的方整合案。论文认 为,这种整合方案对更多的开发人员都具有借鉴意义。 第五章:系统具体应用实现。本章对整个开发流程做了叙述,完成了代码设计和文 件配置信息管理。开发思想是基于i o c 的,所以本章对文件配置做了较多论述,对具体 代码的实现略述,论文认为软件开发正走向配置化时代。 第六章:总结与展望。 7 太原理工大学硕士研究生学位论文 2 1 软件架构 第二章应用技术介绍与分析 软件规模的不断扩大以及复杂度的不断升级,使得开发人员面临的难题也越来越 多。如何将新设计建立在以往工作的基础上,复用原来的成功经验,这个问题得到了众 多技术专家的探索。在这种背景下,设计模式和框架技术出现。开源社区展现出蓬勃的 发展力,框架也不断涌现,它们彼此竞争,又不断借鉴竞争对手的优点改进自己的不足, 或者彼此融合( 如s t r u t s l 项目组和w e b w o r k 项目组融合,s t r u t s 2 的出现) ,进步神速。 架构【l o 】( a r c h i t e c t u r e ) 是软件系统从整体到部分的最高层次的划分,一般有多个不同领 域的框架组成。一个成功的软件需要成功的架构,但是软件架构的建立是一个复杂的过 程,需要持续改进,软件开发人员不可能针对每一个项目都重新设计不同的架构,他们 总是尽量重用已有的架构,或者开发通用的架构方案。 r u p 【l i 】( r a t i o n a lu n i f i e dp r o c e s s ,r a t i o n a l 统一过程) 为软件架构下的定义:软件 架构包含了关于以下问题的重要决策: ( 1 ) 软件系统的组织; ( 2 ) 选择组成系统的结构元素和它们之间的接口,以及当这些元素相互协作时所体 现的行为; ( 3 ) 如何组合这些元素,使它们逐渐合成更大的子系统; ( 4 ) 用于指导这个系统组织的架构风格:这些元素以及它们的接口、协作和组合。 该定义的核心思想可以归纳为:软件架构是在一些重要方面所做出的决策的集合。 m a r ys h a w 在 s o f t w a r ea r c h i t e c t u r e :p e r s p e c t i v e so na l le m e r g i n gd i s c i p l i n e ) ) ( 软 件体系结构:- - f - j 初露端倪学科的展望) 中,定义“软件架构为:软件系统的架构 将系统描述为计算组件及组件之间的交互( t h ea r c h i t e c t u r eo fas o f t w a r es y s t e md e f m e s t h a ts y s t e mi nt e r m so fc o m p u t a t i o n a lc o m p o n e n t sa n di n t e r a c t i o n sa m o n gt h o s e c o m p o n e n t s t l 2 1 ) 。其中的组件是广义上元素的意思,不是只和e j b 等相关的专有组件概 念;“计算组件可以进一步细分为处理组件、数据组件、连接组件等。总之,“组件 可以只子系统、框架、模块、类等不同粒度的软件单元,它们可以担任不同的计算职责。 m a r ys h a w 所做的定义将软件架构概括为“组僻斗交互 。以m v c 模式为例( 如图2 1 ) : 采用m v c 架构的软件包含三种组件:m o d e l 、v i e w 、c o n t r o l l e r 。为了达到一定目的, 8 太原理工大学硕士研究生学位论文 三种组件必须通过交互来协作,比如:v i e w 创建c o n t r o l l e r ,之后c o n t r o l l e r 根据用户 交互调用m o d e l 相应的服务,而m o d e l 会将自身的改变通知v i e w ,、v i e w 会读取m o d e l 的信息来更新自身。 图2 - 1m v c 架构作为“组件+ 交互”的例子 f i g u r e 2 - 1c o m p o n e n t & i n t e r a c t i v ee x a m p l ea b o u tm v c a r c h i t e c t u r e 软件业发展到今天,随着技术的不断革新和应用的不断深入,软件系统一般都比较 复杂,是分而治之和团队开发的产物,因此它是一种由许多软件单元组成的“复合组件 。 软件架构包含了关于软件系统的重要决策,这些决策涉及到如何将软件系统分解成不同 部分、各部分之间的静态结构关系和动态交互关系。软件架构的设计决策范围着眼在“影 响全局 的设计上,而不是关注所有设计细节。 2 2j 2 e e 设计模式分析 使用每一类编程语言开发软件时都有一些设计准则,这些准则保证了软件的质量。 设计模式则是广大软件开发人员总结出的开发经验和技巧,它们利用编程语言的特性, 实现这些设计准则。 模式的概念最早由c h r i s t o p h e r a l e x a n d e r 提出:“每个模式都是一个由三部分组成的 规则,它表达的是某一环境,一个问题以及解决问题的方案之间的关系。【1 3 1 ,“作为 世界的元素,每一个模式都是这三者之间的关系:某一环境、此环境中反复出现的某个 因素系统以及使这些因素能够自我协调的某种空间配置。【1 3 】 可以说,模式是一种问题 的解决思路,它已经适用于一个时间环境,并且可以适用于其他环境【1 4 1 。设计模式的作 用: ( 1 ) 重用设计,重用设计比重用代码更有意义,它会自动带来代码重用。 ( 2 ) 为设计提供术语,每个模式名称就是一个设计词汇,其概念使得程序员之间的交流 更加方便。 ( 3 ) 在开发文档中采用模式词汇可以让其他人更容易理解作者的想法,理解作者为什么 9 太原理工大学硕士研究生学位论文 这么做,以及都做了些什么。编写开发文档也更加容易。 鳓应用设计模式可以诖重构系统变褥容易,可以确保开发正确的代码,并降低在设计 或实现中出现错误的可能性。还可以为重写其他应用程序提供很好的系统架构。 ( 5 ) 正确使用设计模式,可以节省大量时间。 论文中经常使用的设计模式有:m v c 模式,王厂方法模式f f a c t o r ym e t h o dp a t t e r n ) , 单例模式( s i n g l e t o np a t t e r n ) ,原型模式( p r o t o t y p ep a t t e r n ) ,d a o 模式。 m v c 模式【2 0 2 q w e b 应用的传统开发方式将业务逻辑和表现逻辑集成在一起,混合了h t m l 代码 与应用程序逻辑,使得界面设计的更改和业务逻辑的更新困难,进而导致系统容易出错、 调试困难、开发进展缓慢。 针对w e b 程序中的用户界葱、业务逻辑、数据库三种系统设计需求,m v c 将系统 划分为模型层、视图层和控制器层。模型层封装了内核数据和功能,是应用程序的核心。 模型表示业务数据和业务逻辑,一个模型为多个视图提供数据,提高了应用的可重用性。 视图层与用户交互,从模型层获取相关数据,每
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省达州市东辰国际学校2026届英语九上期末综合测试试题含解析
- 综合部年终总结2025
- 西藏日喀则市南木林一中学2026届英语九年级第一学期期末监测模拟试题含解析
- 2026届濮阳市重点中学英语九上期末检测模拟试题含解析
- 2026届辽宁大连甘井子区育文中学化学九年级第一学期期中检测试题含解析
- 2026届江苏省南京市江宁区南京市临江高级中学一模生物试题
- 医师资格考试题库及答案
- 福建省福州福清市2026届化学九年级第一学期期中学业质量监测试题含解析
- 内蒙古自治区鄂尔多斯市东胜区第二中学2026届化学九上期中考试模拟试题含解析
- 2026届辽宁省抚顺市五十中学九年级化学第一学期期末达标检测试题含解析
- mh fg2000ab普通说明书使用服务及配件手册
- 疼痛科梯队建设聊城
- 骨关节健康氨糖氨糖疗法
- 面向航空制造过程排产的关键参数智能感知计算研究
- YS/T 921-2013冰铜
- GB/T 28121-2011非热封型茶叶滤纸
- 2023年廊坊市投资控股集团有限公司招聘笔试模拟试题及答案解析
- 苹果栽培学完整版课件
- 湿性愈合和新型敷料选择课件
- 软件生命周期与开发模型课件
- 实验动物从业人员上岗证考试题库(含近年真题、典型题)
评论
0/150
提交评论