(信号与信息处理专业论文)基于strutshibernatespring框架的信息管理系统的研究和实现.pdf_第1页
(信号与信息处理专业论文)基于strutshibernatespring框架的信息管理系统的研究和实现.pdf_第2页
(信号与信息处理专业论文)基于strutshibernatespring框架的信息管理系统的研究和实现.pdf_第3页
(信号与信息处理专业论文)基于strutshibernatespring框架的信息管理系统的研究和实现.pdf_第4页
(信号与信息处理专业论文)基于strutshibernatespring框架的信息管理系统的研究和实现.pdf_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

武汉理工人学硕士学位论文 摘要 随着计算机技术的普及和网络技术的飞速发展,世界进入了前所未有的信 息化时代,为企业的发展提供了种种机遇和更广阔的发展空间,将企业卷入信 息化的大潮中来,企业信息化是企业管理现代化的标志,是企业快速响应市场 变化的必备条件,如今企业大多采用各种不同的w e b 应用程序来提高自身的管 理能力。 在这些信息管理系统的开发过程中,我们可以接触到很多基于j 2 e e 多层架 构的开发框架,开发者可以将不同层上的框架整合到一起,从而能够从繁杂的 底层编码中解脱出来。这使得开发人员的工作量大大的降低,同时也给系统的 拓展和维护带来很大的便利。而现在主流的开发框架有s t r u t s 、s p r i n g 、h i b e r n a t e , 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 , s p r i n g 和h i b e r n a t e 的集成能够扬长避短,使框架更加易用、高效。 本文对三大框架的特性进行了分析,并对各自在整个整合框架中所扮演的 角色进行了分析。根据所做的研究进行了系统的总体设计,框架的整合,编码 实现到工程发布,从而实现了污水处理技术综合信息管理系统的开发。 本文首先对m v c 架构进行了简要的介绍,对作为v i e w 的s t r u t s 进行了深 入研究,详述其工作流程,并指出了其优缺点。然后对重要的c o n t r o l l e r 即s p r i n g 进行了研究,并详细分析了其依赖注入和面向切面编程等特性。接着对于作为 后台m o d e l 实体的h i b e r n a t e 进行了研究,通过分析其缓存机制这一主要特性, 指出其优缺点,同时提出了针对其缺点的解决办法。最后对这三个框架问如何 整合作了详细的研究,并分析了其整合后的互补特性。通过框架的使用,降低 了代码的耦合性,减少开发周期,达到快速,高效的开发,从而为程序开发者 提供了便利。 污水处理技术综合信息管理系统利用基于b s 架构的框架技术进行了丌发。 其目的一是为了实现项目的开发,二是为了减轻用户在处理大量文件时所承受 的负担,用户通过该系统可以方便有效地管理文件,系统同志以及用户信息, 轻松地面对此类文件和信息管理的工作。 关键字:信息管理系统,s t r u t s ,h i b e r n a t e ,s p r i n g ,框架整合 武汉理- t 大学硕士学位论文 a b s t r a c t w i t ht h ep o p u l a r i z a t i o no fc o m p u t e rt e c h n o l o g ya n dr a p i d d e v e l o p m e n to f n e t w o r kt e c h n o l o g y , t h ew o r l dh a se n t e r e da nu n p r e c e d e n t e de r ao fi n f o r m a t i o n i t o f f e r e d o p p o r t u n i t i e sa n dw i d e rr o o mf o rt h ec o m p a n i e si n v o l v e di nt h et i d eo f i n f o r m a t i o n e n t e r p r i s ei n f o r m a t i o nm a n a g e m e n ti sas i g no fm o d e r n i z a t i o n ,a n di ti s a l s ot h en e c e s s a r yc o n d i t i o n so fc o m p a n yr e s p o n dq u i c k l yt om a r k e t c h a n g e s n o w a d a y s ,m o s te n t e r p r i s e su s eav a r i e t yo fw e ba p p l i c a t i o n st oi m p r o v et h e i r m a n a g e m e n tc a p a c i t y i nt h ei n f o r m a t i o nm a n a g e m e n ts y s t e md e v e l o p m e n t p r o c e s s ,w ec a nr e a c hal o t o fm u l t i - t i e ra r c h i t e c t u r eb a s e do nj 2 e ed e v e l o p m e n tf r a m e w o r k d e v e l o p e r sc a l l i n t e g r a t et h ef r a m e w o r ko fd i f f e r e n tl a y e r st o g e t h e r , a l l o w i n gc o m p l e xu n d e r l y i n g c o d ef r o m 毹e d t h i sa l l o w sd e v e l o p e r st og r e a t l yr e d u c et h ew o r k l o a d ,b u ta l s ot o t h es y s t e me x p a n s i o na n dm a i n t e n a n c eo f g r e a tc o n v e n i e n c e n o w a d a y s ,m a i n s t r e a m d e v e l o p m e n tf r a m e w o r ki s s t r u t s ,s p r i n g ,h i b e r n a t e s t r u t s + h i b e r n a t e + s p r i n g i n t e g r a t i o na r c h i t e c t u r ed e s i g nu s i n gh i e r a r c h i c a lt h i n k i n g , a n dt h es u p p o r to fa l l l e v e l st op r o v i d ea l li n t e g r a t e df r a m e w o r kf o rt h es t r a t e g yt oi s o l a t et h ed e p e n d e n c e b e t w e e na l l l e v e l s ,e a s y f o r s y s t e me x p a n s i o n s t r u t s ,s p r i n ga n dh i b e r n a t e i n t e g r a t i o nc a l le x c e e da n dt om a k et h ef r a m e w o r km o r eu s e r - f r i e n d l ya n de f f i c i e n t i nt h i sp a p e r , t h ec h a r a c t e r i s t i c so ft h et h r e ef r a m e w o r k sw e r ea n a l y z e d ,a n dt h e i r i n t e g r a t i o ni nt h ef r a m e w o r ko ft h er o l ea r ea n a l y z e d a c c o r d i n gt or e s e a r c hd o n eb y t h es y s t e md e s i g n ,i n t e g r a t i o nf r a m e w o r k ,i m p l e m e n tt h ep r o j e c tr e l e a s e da s e w a g e t r e a t m e n tt e c h n o l o g yt oa c h i e v ei n t e g r a t e di n f o r m a t i o nm a n a g e m e n t s y s t e m f i r s t ,t h i sp a p e rg i v e sab r i e fm v ca r c h i t e c t u r ed e s c r i p t i o n ,o nt h ev i e w , s t r u t s a sa ni n d e p t hr e s e a r c h ,d e t a i l e di nt h ee x a m p l ew o r k f l o w , a n dp o i n t e do u tt h e a d v a n t a g e sa n dd i s a d v a n t a g e s s e c o n d ,o nt h ei m p o r t a n ts p r i n gc o n t r o l l e rt h a th a s b e e ns t u d i e da n da n a l y z e di nd e t a i lt h ed e p e n d e n c yi n j e c t i o na n da s p e c t o r i e n t e d p r o g r a m m i n ga n do t h e rf e a t u r e s t h i r d ,a sab a c k g r o u n dm o d e lf o rh i b e r n a t ee n t i t i e s w e r es t u d i e d ,b ya n a l y z i n gt h em a i nc h a r a c t e r i s t i c so ft h i sc a c h i n gm e c h a n i s m ,t h a t i t sa d v a n t a g e sa n d d i s a d v a n t a g e s ,a n dp r o p o s e ds o l u t i o n sf o ri t ss h o r t c o m i n g s f i n a l l y a m o n gt h et h r e ef r a m e w o r kt oi n t e g r a t et h er e s e a r c hi nd e t a i l ,a n da n a l y z e st h e i i c h a r a c t e r i s t i c so fi n t e g r a t e dc o m p l e m e n t a r y a c c o r d i n gt ou s i n gf r a m e s ,w e c a n r e d u c et h ec o u p l i n go ft h ec o d e ,r e d u c ed e v e l o p m e n tc y c l e ,t oa c h i e v er a p i d ,e f f i c i e n t d e v e l o p m e n ta n d t h u sf a c i l i t a t e sa p p l i c a t i o nd e v e l o p m e n tf o rd e v e l o p e r s w a s t e w a t e rt r e a t m e n tt e c h n o l o g yb a s e do ni n t e g r a t e di n f o r m a t i o nm a n a g e m e n t s v s t e mu s i n gb ss t r u c t u r eo ft h ef r a m e w o r ko ft h et e c h n o l o g yw a sd e v e l o p e d f i r s t , i no r d e rt oa c h i e v ei t sp u r p o s eo fp r o j e c td e v e l o p m e n t ,t h es e c o n di st or e d u c et h e l a r g en u m b e ro ff i l e st h eu s e ri nd e a l i n g w i t ht h eb u r d e nb o r n eb yt h eu s e rt h r o u g ht h e s y s t e mc a nb ee a s i l ya n de f f i c i e n t l ym a n a g ef i l e s ,s y s t e ml o ga n d u s e ri n f o r m a t i o n , e a s yt of a c es u c hd o c u m e n t sa n d i n f o r m a t i o nm a n a g e m e n t k e y w o r d s :i m s ,s t r u t s ,h i b e r n a t e ,s p r i n g ,f r a m e w o r ki n t e g r a t i o n i i i 独创性声明 本人声明,所呈交的论文是我个人在导师指导下进行的研究工 作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的 地方外,论文中不包含其他入已经发表或撰写过的研究成果,也不 包含为获得武汉理工大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 签名: 本乞l 丑! f 日期:趁2 :坐 学位论文使用授权书 本人完全了解武汉理工大学有关保留、使用学位论文的规定, 即:学校有权保留并向国家有关部门或机构送交论文的复印件和电 子版,允许论文被查阅和借阅。本人授权武汉理工大学可以将本学 位论文的全部内容编入有关数据库进行检索,可以采用影印、缩印 或其他复制手段保存或汇编本学位论文。同时授权经武汉理工大学 认可的国家有关机构或论文数据库使用或收录本学位论文,并向社 会公众提供信息服务。 ( 保密的论文在解密后应遵守此规定) 研究生( 签名) : 和屏l 导师( 签名日期砂p 厂,8 武汉理t 大学硕十学位论文 第l 章绪论 1 1 本课题的研究背景 目前,国内外信息化建设已经进入以w e b 应用为基础核心的阶段。j a v a 语 言应该算得上是开发w e b 应用的最佳语言。然而。就算用j a v a 建造一个不是很 烦琐的w 曲应用系统,也不是件很轻松的事情。有很多东西需要仔细考虑,比 如要考虑怎样建立用户接口? 在哪罩处理业务逻辑? 怎样持久化数据? 随着项目的规模和复杂性的提高,我们在项目开发过程中面临前所未有的 各个方面的挑战。根据优先级排序,我们开发的项目要达到的指标主要包括高 可靠性( h i 出a v a i l a b i l i t y ) 、低成本( c o s te f f e c t i v e ) 、可扩展性( s c a l a b i l i t y ) 、 投放市场快速性( t i m et om a r k e t ) 、安全性( s e c u r e ) 、高性能( g o o dp e r f o r m a n c e ) 、 可集成性( a b i l i t yt oi n t e g r a t e ) 以及多平台支持( m u l t i c h a n n e l ) 等。要达到这 些目标,需要我们找到一种通用的、灵活的、开放的、可扩展的软件框架,由 框架来帮助我们解决这些挑战,然后在框架基础之上开发具体的应用系统。 目前,j 2 e e 多层架构上已经开发出了很多框架,这大大减轻了开发人员的 负担,开发者可以将不同层上的框架整合到一起,从而能够从繁杂的底层编码 中解脱出来。在构建w 曲应用时,用户请求的处理、业务逻辑处理以及数据的 持久化是必须仔细考虑的因素,而且也是大部分应用必须具备且较为复杂的职 责。因此目前针对表示层、业务层、数据持久层这三方面人们开发了很多框架, 如s t r u t s 、s p r i n g 、h i b e r n a t e 等。 1 2 目前国内外研究现状 信息膨胀的今天,我们面对着各种各样的信息,我们毫无头绪。我们需要 一个信息系统来存储这些信息。并要求它给我们分类并做出分析,我们可以很 方便的从中获取对我们有用的信息来借鉴。因此一个友好的功能强大的信息管 理系统会受到欢迎。另一方面,随着计算机技术的普及和网络技术的飞速发展, 世界进入了前所未有的信息化时代,为企业的发展提供了种种机遇和更广阔的 发展空间,将企业卷入信息化的大潮中来,企业信息化是企业管理现代化的标 武汉理r 犬学硕: 二学位论文 志【l 】,是企业快速响应市场变化的必备条件,如今企业大多采用各种不同的w e b 应用程序来提高自身的管理能力。 为了应对由于市场信息变化的需求,企业对w e b 应用程序的可扩展性要求 越来越高,因此对传统的w e b 应用技术提出了极大的挑战。传统的w e b 应用开 发将页面、业务逻辑和数据处理代码都写在页面代码中,杂合在一起,导致应 用程序的藕合性太强,代码的重用性较差,从而引起w e b 应用的拓展和维护极 其困难,同时也不利于开发人员的分工协作。在大型的企业级应用的开发中传 统的w e b 技术的缺点愈加明显。随着j 2 e e 平台的出现,基于b s 的多层w e b 体系结构逐渐发展成熟起来,现在已经成为为主流。但是,在多层w e b 体系结 构的设计中,普遍存在程序可重用程度低、维护工作繁琐、应变能力不足等弱 点f 2 】;同时,多层w e b 应用软件需要面对复杂的网络环境、多样化的用户需求、 灵活的业务模式、复杂的业务流程、众多角色分工等问题,在业务和技术上也 是复杂多变的。因此,如何组织应用程序以实现简单高效的应用程序升级、维 护和拓展,是当前我们应该重点考虑的问题。 为了降低成本、加快应用程序的设计和开发,依据j 2 e e 平台提供的基于组 件的方法,人们要做的就是如何组装这些组件使之成为一个具有伸缩性、可维 护性、可扩展性、可重用性和易管理性的软件开发体系结构。 s t r u t s 是一个基于s u nj 2 e e 平台的m v c 框架,是m v c 框架的一个拓展, 主要是采用s e r v l e t 和j s p 技术来实现的。s t r u t s 由于能充分满足应用开发的需求, 简单易用,敏捷迅速,而受到广泛关注。s t r u t s 把s e r v l e t 、j s p 、自定义标签和 信息资源( m e s s a g e r e s o u r c e s ) 整合到一个统一的框架中,开发人员利用其进行 开发时,省去了用编码实现m v c 框架模式的时间,s t r u t s 在这方面给我们带来 极大地便利例。但是它唯一不足之处就是配置文件相对较多,对刚接触s t r u t s 的 开发人员来说操作有点复杂。但从另一方面来说,这也是对我们编程习惯的一 个考验。 数据库操作在w e b 应用中具有相当重要的地位,可以说,所有的w e b 应用 都离不开数据库。目前,主流的数据库是关系数据库,不利于面向对象的编程 思想的发挥,如何使利用面向对象的思想操作关系数据库也是当今的w e b 应用 技术发展的热点之一。 以前的使用j d b c 编程来访问数据库,虽然运行效率高,但是在j a v a 程序 代码中嵌入大量的s q l 语句,增加了项目维护的难度。现在,越来越多的j a v a 开发人员把h i b e r n a t e 作为企业应用和关系数据库之间的中间件。h i b e r n a t e 是对 2 武汉理- i :人学硕十学位论文 象关系映射( o b j e c t r e l a t i o nm a p p i n g ) 的解决方案,简单地说就是建立对象到 表格的映射关系,将j a v a 中的对象与对象关系映射至关系数据库中的表格与表 格之间的关系,h i b e r n a t e 提供了这个映射过程的自动对应转换。从而使程序员 可以方便的使用面向对象的思想操作关系数据库。这使得程序员的访问数据库 操作变的非常便捷。 s p r i n g 属于轻量级的企业框架,其最重要的特点就是依赖注入和反转控制, 依赖注入是为了建立对象与对象之间依赖关系的实现,反转控制作用就是把应 用程序的配置和依赖性与实际的应用程序代码分离,从而减小程序代码的耦合 度【4 】。它的面向切面编程可以将业务逻辑从系统服务中抽取出来。s p r i n g 负责程 序的业务控制,将表现层( s t r u t s ) 和持久层( h i b e r n a t e ) 联系起来。 1 3 本文研究的主要内容和组织结构 1 3 1 本文研究的主要内容 研究基于j 2 e e 平台的m v c 设计模式的实现s t m t s + h i b e n l a t e 十s 研n g 框 架,分析其实现原理和特点,并完成污水处理技术综合信息管理系统项目开发。 重点研究s t r u t s 的验证和上传下载,s p r i n g 的对象注入机制和反转控制, h i b e r n a t e 与数据库的映射的建立,h i b e r n a t e 封装的数据库访问模板和方法,还 有这三个框架之间的整合以及a j a x 验证框架。 1 3 2 论文的组织结构 第1 章介绍研究背景和国内外现状,同时简要介绍了本文的工作内容和和 组织结构。 第2 章介绍系统使用的关键技术,分析他们的优缺点,同时给出了框架之 间的整合方法,为系统的开发做前期准备。 第3 章主要讲述了系统的模块结构,以及每个模块的设计;最后介绍了系 统各个模块的实现。 第4 章介绍了系统开发中所遇到的问题,及这些问题的形成原因,还有这 些问题的解决方法。 第5 章对全文进行了总结,提出了系统中所存在的不足以及未来研究方向。 3 武汉理t 大学硕士学位论文 第2 章系统的关键技术 2 1s t r u t s 的简介 s t r u t s 最早是作为a p a c h ej a k a r t a 项目的组成部分,项目的创立者希望通过 对该项目的研究,改进和提高j a v as e r v e rp a g e s 、s e r v l e t 、标签库以及面向对象 的技术水准【5 】。当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提 供支持。同样,软件工程师使用s t r u t s 为业务应用的每一层提供支持。它的目的 是为了帮助我们减少在运用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 的缩写,是一种常用的设计模式i 们。m v c 减 少代码之间的耦合,增加程序代码弹性,以及让视图层更富于变化。m v c 模式 根据分工的不同将程序代码分为三部份,m o d e l 部分是业务逻辑部分,v i e w 是 视图部分,c o n t r o l l e r 是控制部分。c o n t r o l l e r 部分接收来自v i e w 所提交的数据 并交与m o d e l 部分处理,然后处理结果通过c o n t r o l l e r 部分交给对应的v i e w 部 分展现出来。 m v c 模式经过发展大概可以分为m o d e ll 与m o d e l2 两种模式,现在我们 经常使用的主流框架都是由这两种模式发展而来。 在m o d e l1 架构中,j s p 直接处理w e b 浏览器送来的请求( r e q u e s t ) ,并 辅以j a v a b e a n 处理相关业务和应用逻辑。m o d e ll 架构就是j s p 和业务j a v a b e a n 的双向交流,但在m o d a ll 中j s p 可能同时肩负v i e w 与c o n t r o l l e r 角色,两 类程序代码不可避免的夹杂在一起,不易维护【7 l 。而m o d e l2 中将s e r v l e t 纳入 架构中扮演前端c o n t r o l l e r 角色,将w e b 浏览器送出之请求集中送至s e r v l e t , s e r v l e t 视需求转向给对应的j a v a b e a n 处理,处理完毕后,s c r v l e t 将处理结果交 给对应的j s p 展示。可以m o d e l2 模式结构比较清晰,但编写的复杂度明显增 加了。 s t r u t s 是m v c 的一种实现,s t r u t s 对m o d e l ,v i e w 和c o n t r o l l e r 都提供了对 应的组件埔l 。 c o n t r o l l e r 组件由两个部分组成:系统核心控制器( a c t i o n s e r v l e t ) ,业务逻 辑控制器( a c t i o n ) 。 其中a c t i o n s e r v l e t ,由s t r u t s 框架提供,继承自h t t p s e r v l e t 类,并重载了 4 武汉理上人学硕十学位论文 h t t p s e r v l e t 的d o g e t o 和d o p o s t o 方法,可以接受h t r p 响应,并进行转发。同时 还提供了使用x m l 进行转发映射的功能。该控制器负责接收来自用户的请求, 然后根据用户请求决定是否要转给业务逻辑控制器。 a c t i o n ,这个类通常由用户提供,该控制器负责接收来自a c t i o n s e r v l e t 的请 求,并根据该请求调用相应的业务逻辑方法处理请求,并将处理结果返回给j s p 页面显示。业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是 调用m o d e l 来完成处理。 m o d e l 部分由j a v a b e a n 实现,模型层表示应用程序的业务逻辑。j a v a b e a n 封装了底层的业务逻辑,包括数据库访问等。 v i e w 部分可以采用j s p 实现。在这些j s p 文件中没有业务逻辑代码,也没 有模型信息,只有标签,这些标签可以是标准的j s p 标签或客户化标签。通过 标签库可以减少脚本的使用。 当用户通过视图向s e r v l e t 发送数据时使用了s t r u t s 中的a c t i o n f o r m 组件, 该组件通常也被归于视图。a c t i o n f o r m 的作用就是将用户提交的数据编译成 b e a n 对象,出了基本的g e t x x x o 和s a x x x o 方法外,它还提供了另外两种特殊 的方法用于对用户提交的数据进行一些初始化及验证操作。 s t r u t s 将s e r v l e t 和j s p 标记用作实现的一部分。s t r u t s 继承了m v c 的各项 特性,并根据j 2 e e 的特点,做了相应的变化与拓展。s t r u t s 是开源软件,这是 它的一大优点,使开发者能更深入的了解其内部实现机制。 除此之外,t a g l i b 是s t r u t s 的标记库,灵活运用,能大大提高开发效率。页 面导航使系统的脉络更加清晰【9 】。通过一个配置文件,即可把握整个系统各部分 之间的联系,便于后期的维护。 2 2s p r i n g 的简介 s p r i n g 是一个开源框架,它是为了解决企业应用开发的复杂性而创建的。 s p r i n g 使用基本的j a v a b e a n 来完成以前只可能由e j b 完成的事情。然而,s p r i n g 的用途不仅限于服务器端的开发【l o 】。从简单性、可测试性和松耦合的角度而言, 任何j a v a 应用都可以从s p r i n g 中受益。s p r i n g 不排斥各种优秀的开源框架,相 反,s p r i n g 可以降低各种框架的使用难度,s p r i n g 提供了对各种优秀框架( 如 s t r u t s ,h i b e r n a t e ) 等的直接支持。 s p d n g 是一个轻量级的控制反转o o c ) 和面向切面( a o p ) 的容器框架。 5 武汉理t 大学硕十学位论文 从大小与开销两方面而言s p r i n g 都是轻量的。s p r i n g 是非侵入式的,s p r i n g 开发应用时新建的类一般都无需继承s p r i n g 中的类。 s p r i n g 通过一种称作控制反转( i o c ) 的技术促进了松耦合。当应用了l o c , 一个对象依赖的其它对象会通过被动的方式传递进来,容器在对象初始化时不 等对象请求就主动将依赖传递给它,而不是这个对象自己创建或者查找依赖对 象【l l 】。通过s p r i n g 提供的i o c 容器,我们可以将对象之间的依赖关系交由s p r i n g 进行控制,避免编码所造成的过度程序耦合。 通过s p r i n g 提供的a o p 功能,方便进行面向切面的编程,许多不容易用传 统面向对象编程实现的功能可以通过a o p 轻松应付【l 引。s p r i n ga o p 可以为基于 s p r i n g 的应用系统提供事务等管理服务,通过使用a o p ,不用依赖e j b ,也可 以在应用系统中使用声明式的事务管理策略,从而提高开发效率和质量。可以 将业务逻辑从系统服务中抽取出来,允许通过分离应用的业务逻辑与系统级服 务进行内聚性的开发。 s p d n g 包含并管理应用对象的配置和生命周期,在这个意义上它是一种容 器,你可以配置你的每个b e a n 如何被创建,可以创建一个单独的实例或者每次 需要时都生成一个新的实例,以及它们是如何相互关联的,应用对象被声明式 地组合 1 3 】。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 3h i b e r n a t e 的简介 h i b e r n a t e 是j a v a 应用与关系数据库之间的桥梁,通过对j d b c 的简单封装, 使j a v a 程序员可以使用面向对象的思想操作数据库表,不用再考虑数据访问细 节,可以专注于业务逻辑的开发,它对软件分层做了进一步的细化,使数据持 久化与业务逻辑和数据库分开,便于软件的后期维护。h i b e r n a t e 可以应用在任 何使用j d b c 的场合,既可以在j a v a 的客户端程序使用,也可以在s e r v l e t j s p 的w e b 应用中使用,同时h i b e r n a t e 可以在应用e j b 的j 2 e e 架构中取代c m p , 完成数据持久化的重任【1 4 】。 提到h i b e r n a t e 不得不说说它的双重缓存机制,这在数据库的操作中起了很 6 武汉理t 大学硕士学位论文 大的作用【1 5 】。h i b e r n a t e 中提供了两级缓存,第一级别的缓存是s e s s i o n 级别的缓 存,它是属于事务范围的缓存。这一级别的缓存是由h i b e r n a t e 管理的,一般情 况下无需进行干预:第二级别的缓存是s e s s i o n f a c t o r y 级别的缓存,它是属于进 程范围或群集范围的缓存。这一级别的缓存可以进行配置和更改,并且可以动 态加载和卸载。h i b e r n a t e 还为查询结果提供了一个查询缓存,它依赖于第二级 缓存。 h i b e r n a t e 对象关系映射提供延迟的与即时的对象初始化。即时加载在读取 一个对象的时候会将与这个对象所有相关的其他对象一起读取出来。在使用双 向关系的时候,经常会导致整个数据库都在初始化的阶段被读出来了。从效率 和速度方面来考量,这都是不能被接受的f j 6 1 。 一个明显的解决方法是使用h i b e r n a t e 提供的延迟加载机制。这种初始化策 略只在一个对象调用它的一对多或多对多关系时才将关系对象读取出来。这个 过程只进行了很少的数据库操作请求,因此在操作数据库时会感觉到明显的速 度提升。这项技术的一个缺陷是延迟加载技术要求一个h i b e r n a t e 会话要在对象 使用的时候一直开着。但当我们通过使用d a o 模式将持久层抽象出来的时候, 为了将持久化机制完全地抽象出来,所有的数据库逻辑,包括打开或关闭会话, 都不能在应用层出现。因此我们并不能保证h i b e m a t e 会话处于一直开着的状态。 一种快速的解决方法是放弃d a o 模式,将数据库连接逻辑加到应用层中来。在 小型应用系统中我们可能还看不出这个方法有什么问题,但是我们在开发大型 应用系统的时候就会发现这严重妨碍了系统的可扩展性【l7 1 。 2 4s t r u t s + h i b e m a t e + 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 已经成为业界标准,s t r u t s 作为表现层和控制层主要框架,提供m v c 控制、表现层t a 西i b 布局管理,以及v a l i d a t o r 输入校验。s t r u t s 的配置文件可 以明确的显示整个系统各部分之间的联系,简化了系统的开发和维护,使得系 统结构更加清晰。t a 俎i b 是s t r u t s 的标记库,有效提高了开发效率,给程序员在 界面的处理上以极大的便利,但相对于处理界面的强大功能而言,s t r u t s 处理业 务逻辑方面要逊色得多,而s 研n g 刚好可以弥补它的这些不足。 s p r i n g 中的i o c 容器作为系统控制层的一部分提供对面向接口编程的 7 武汉理工大学硕士学位论文 j a v a b e a n 的管理,并且采用i o c 使得可以很容易的实现b e a n 的装配,通过消除 各种自定义格式的属性文件来简化对j a v a b e a n 的管理,从而实现业务逻辑的方 便更换,而无需使用e j b 。s p r i n g 能有效地组织中间层对象,易于同其他v i e w 框架无缝集成,允许根据需要在某一层选择使用它的某一个模块,对不同的数 据访问技术提供了统一的接口,提供了简洁的a o p 并据此实现事务管理。这样 就能很好的解决由于单例模式的过多使用而造成的系统的可测试性和面向对象 的程度降低的问题。数据访问层主要采用d a o ( d a t aa c c e s so b j e c t ) 模式,将 底层数据访问操作与高层的业务逻辑分离开来。通过d a o ,向业务逻辑组件隐 藏了数据库访问的实现细节。但s p r i n g 也有j s p 中要写很多代码、控制器过于 灵活,缺少一个公用控制器等等不足,这又可以由s t r u t s 来弥补。 h i b e r n a t e 作为数据访问层的底层持久框架,提供对象关系映射,实现面向 对象的域模型映射到传统的关系数据库。它不仅负责实现映射,提供数据查询 等等数据库的操作,而且还可以自动生成s q l ,从而能使应用程序移植到所有 的s q l 数据库。同时h i b e r n a t e 可以方便地集成到j 2 e e 应用服务器中去,为j a v a 应用提供了一个易用的、高效率的轻量级对象关系映射框架。 三个框架分为三个层次,每个层次各司其职,使每个层次的逻辑集中,便 于专注开发。而相邻层次之间松散耦合,便于组件的重用和系统功能扩展。由 此可见, s t r u t s ,s p r i n g 和h i b e r n a t e 的集成能够扬长避短,使框架更加高效。 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 与s p r i n g 的整合和 h i b e r n a t e 与s 埘n g 的整合两部分来介绍。 2 4 1s t r u t s 与s p r i n g 的整合 s t r u t s 与s p r i n g 的整合主要是要让s t r u t s 知道s p r i n g 的存在,从而让相关的 依赖关系直接注入到s p r i n g 中,来实现s p r i n g 对相关组件的管理,避免在程序 中直接编写代码来声明组件的依赖关系【1 8 】。首先在s t r u t s 的s t r u t s c o n f i g x m l 中 使用 标签来实现在s t r u t s 的配置文件中指定s p r i n g 配置文件的路径。 示例如下: 武汉理j :人学硕十学位论文 通过这样的配置s t r u t s 就知道了s p r i n g 框架的存在,s t r u t s 的a c t i o n 如果要 使用到配置在s p r i n g 框架上的数据库访问d a o 类,就必须使用代理类。代理类 的使用方法示例如下: 相应的在s p r i n g 的配置文件a p p l i c a t i o n c o n t e x t x m l 中,根据n a m e 属性对应 s t r u t s 中使用代理类的a c t i o n ,从而建立a c t i o n 和数据库访问d a o 类之间的依 赖关系。示例如下: 2 4 2h i b e m a t e 与s p r i n g 的整合 h i b e r n a t e 与s p r i n g 整合为了将h i b e r n a t e 的d a o 交给s p r i n g 来管理,我们 需要将h i b e r n a t e 原有的配置文件h i b e r n a t e c f g x m l 上的配置全部转移到s p r i n g 的a p p l i c a t i o n c o n t e x t x m l 上来。主要有数据库连接的d a t a s o u r c e ,s e s s i o n f a c t o r y 以及m a p p i n g r e s o u r c e 都应该在s p r i n g 框架上进行配置。示例如下: o r g h i b e r n a t e d i a l e c t s q l s e r v e r d i a l e c t t m e c o m h j h i b e m a t e y h z h b m x m l c o m h j h i b e m a t e y h h b m x m l c o m h j h i b e m a t e x t h b m x m l c o m h j h i b e m a t e m 1 h b m x m l c o r n h j h i b e m a t e w j h b m x m l c o m h j h i b e m a t e x q h b m x m l c o m h j h i b e m a t e p j h b m x m l 在完成s t r u t s 与s p r i n g ,h i b e m a t e 与s p r i n g 的整合后,就完成了三个框架 的整合,这里我们看到业务逻辑a c t i o n 和数据库操作d a o 都在s p r i n g 中声明, 它们的依赖关系也在其中声明,m v c 中的c o n t r o l l e r 角色由s p r i n g 完成。s t r u t s 和h i b e r n a t e 分别担当v i e w 和m o d e l 的角色。三个框架分各司其职,使每个层 次的逻辑集中,便于专注开发。而相邻层次之间松散耦合,便于组件的重用和 1 0 武汉理一l :人学硕十学位论文 系统功能扩剧19 1 。s t r u t s ,s p r i n g 和h i b e r n a t e 的集成能够扬长避短,使框架更加 高效。 2 5a j a x a j a x 即a s y n c h r o n o u sj a v a s c r i p ta n dx m l ( 异步j a v a s c r i p t 和x m l ) 。a j a x 并不是- - f 新的语言,它是j a v a s c r i p t 、x m l 、c s s 、d o m 等多种已有技术的 组合,

温馨提示

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

评论

0/150

提交评论