(计算机应用技术专业论文)基于strutshibernatespring框架整合的xx边防支队资产管理系统的研究与开发.pdf_第1页
(计算机应用技术专业论文)基于strutshibernatespring框架整合的xx边防支队资产管理系统的研究与开发.pdf_第2页
(计算机应用技术专业论文)基于strutshibernatespring框架整合的xx边防支队资产管理系统的研究与开发.pdf_第3页
(计算机应用技术专业论文)基于strutshibernatespring框架整合的xx边防支队资产管理系统的研究与开发.pdf_第4页
(计算机应用技术专业论文)基于strutshibernatespring框架整合的xx边防支队资产管理系统的研究与开发.pdf_第5页
已阅读5页,还剩98页未读 继续免费阅读

(计算机应用技术专业论文)基于strutshibernatespring框架整合的xx边防支队资产管理系统的研究与开发.pdf.pdf 免费下载

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

文档简介

摘要 基于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 开发技术的局限性,整合 s t l l l t s + s p r i n g + h i b e m a t e 的框架技术,开发了边防局支队资产管理 系统,并根据软件工程的开发习惯对该系统的中的框架和插件等技术 进行了详尽的论述。整合s t m t s + s 研n g + h i b e m a t e 的框架技术通过在 边防局支队资产管理系统中成功应用,验证了该框架整合技术的可 行性及可靠性等优点。 本系统中s t r u t s 主要负责表现层,完成页面显示、响应用户请求 等功能;s p r i n g 主要负责业务逻辑层,完成应用系统的业务逻辑与事 务处理等功能;h i b e m a t e 主要负责数据持久层,完成与数据层的交 互功能。通过整合,充分发挥s t m t s 、s 埘n g 和h i b e m a t e 框架各自的 优势,降低了各层间的耦合度。此外在本系统中还引入了b i n 、 j b a r c o d e b e a n 、儿o g q 插件。使用b i r t 设计出灵活多变的报表和图表, 使用j b a r c o d e b e a n 可以设计出标签条码,使用儿0 9 4 j 记录调试和运 行信息。 北京化工大学软件( m i s ) 研究与开发中心致力于管理信息系统 的开发,在积累了多年经验的基础上,成功开发了高等学校和行政事 北京化工大学硕士学位论文 业单位设备管理系统。随着资产管理技术的不断提高和新技术的不断 涌现,本课题组的科研方向定为设计一个构架合理、先进,扩展性强, 伸缩性好,安全性高的应用系统。本人在分析科研组原系统后,吸取 优点,引入了框架技术和插件技术,为课题组的科研目标构建了一个 雏形系统。 关键词:s t r u t s ,s 埘n g ,h i b e r a n t e ,框架,资产,管理系统 i l 摘要 t h er e s e a r c ha n di m p l e m e n t a t i o no f a m i sf o rd f db a s e do ni n t e g r a t i o n o f s t r u t s ,s p r i n ga n dh i b e r n a t e a b s t r a c t t h i sp a p e rm a i nw o r ki sf o c u so nt h ed e s i g no fa s s e t sm a n a g e m e n t i n f o r m a t i o ns y s t e m ( a m i s ) f o rd e t a c h m e n to ff r o n t i e rd e f e n s e ( d f d ) b a s e do ni n t e g r a t i o no fs t m t s ,s p r i n ga n dh i b e m a t ea n dt h ee x p e r i e n c eo f g o v e m m e n tm a n a g e m e n t t h i sp a p e ra l s od i s c u s s e dt h ed e v e l o p i n gt r e n d o fw e bd e s i g n i n ga n da n a l y z e dt h el i m i to ft r a d i t i o n a lw e bd e s i g n i n g t e c 量u 1 0 1 0 9 y ,a n dd e m o n s t r a t e dt h et e c h n o l o g ya b o u tt h ea m i s ,s u c ha s f 锄e w o r k , b i r r ta n dj b a r c o d e b e a n , a c c o r d i n g t ot h es o r w a r e e n g i n e e r i n g sf u l lf u n c t i o n a la p p r o a c h a r e ra n a l y z i n gi nt h ed e t a i lt h e 行a m e w o r ko fs t m t s ,s p r i n ga n dh i b e m a t e ,i td e v e l o p e dt h ea m isb a s e d o nt h e s e 仔a m e w o r k s i nt h el a s t ,f o rt h es u c c e s s 旬la p p l i c a t i o ni nt h e a m i s ,i tv a l i d a t e dt h ef e a s i b i l i t ya n dr e l i a b i l i t yo ft h em u l t i 一仔a m e w o r k t e c h n o l o g y i nt h ea m i s ,s t r u t st a k ec h a 唱eo fp r e s e n t a t i o nl a y e r c o m p l e t i n g p a g ed i s p l a y i n ga n da n s w e ru s e r sr e q u i r e m e n t s ,s p r i n gt a k e sc h a r g eo f b u s i n e s s l o g i c , c o m p l e t i n gt h e b u s i n e s sl o g i ca n dm a n a g e m e n to f 北京化t 大学硕? i j 学位论文 a p p l i c a t i o np r o g r a m s ,h i b e m a t et a k e sc h a 唱eo fd a t ap e r s i s t e n c el a y e r c o m p l e t i n gi n t e r a c t i v ew i t ht h ed a t a b a s e b yt h i sw ec a ns o l v es o m e p r o b l e m sb r o u g h tb yt h eh i g hc o m p l e x i t yo ft h es y s t e ms t m c t u r e ,s u c ha s t h ec o u p l i n gd e g r e eo fc o d e s ,t h em a i n t e n a n c eo ft h ea p p l i c a t i o ns y s t e m , a n dt h er e u s a b i l i t yo ft h ec o m p o n e n t s t h es y s t e ma l s op r o v i d et h e m u l t i r e p o r t a n dm u l t i c h 抓b yb i r t ,b a r c o d e b yj b a r c o d e b e a na n d i n f o n n a t i o no fm n n i n ga n dd e b u g g i n gb yj l 0 9 4 j n e tm a n a g e m e n ti n f o r m a t i o ns y s t e m ( n m i s ) c e n t e ro fb e i j i n g u n i v e r s i 够 o fc h e m i c a l 1 b c h o n o l o g y印p l i e s i t s e l ft or e s e a r c ht h e m a n a g e m e n ti n f o r m a t i o ns y s t e m ( m i s ) w i t ht h es u c c e s s m la p p l i c a t i o n o fa m i sf o ru n i v e r s i t i e sa n dg o v e m m e n t s w i t ht h er 印i dd e v e l o p m e n to f m a n a g e m e n to fa s s e t sa n dt h e 印p l i c a t i o no fm a n yt e c h n o l o g i e s ,n m i s w a mt om a k ea m i sw i t ht h ec h a r a c t e r i s t i c so fp r o p e r t y 行a m e w o r k , e m c i e n c y ,h i 曲m a i n t a i n a b i l i t y a n de x p a l l s i b i l i t y a c c o r d i n gt ot h e s t r o n g p o i n to fp r e a m i sa n dt h et e c h n o l o g yo f 行a m e w o r ka n dp l u g i n ,i d e s i g l la m i s w h i c hi st h eb e g i n n i n go fn m i s sn e wd i r e c t i o n k e yw o i i s : s t r u t s ,s p r i n g ,h i b e m a t e ,行a m e w o r k ,a s s e t s ,m i s l v 北京化工大学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本 论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文 的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本 人完全意识到本声明的法律结果由本人承担。 作者签名:乙盏塑茧日期:丝茎! 垒! , 关于论文使用授权的说明 学位论文作者完全了解北京化工大学有关保留和使用学位论文 的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属北 京化工大学。学校有权保留并向国家有关部门或机构送交论文的复印 件和磁盘,允许学位论文被查阅和借阅;学校可以公布学位论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编 学位论文。 保密论文注释:本学位论文属于保密范围,在上年解密后适用 本授权书。非保密论文注释:本学位论文不属于保密范围,适用本授 权书。 作者签名:丛盟日期:丝堕! 曼! ! 竺: 导师签名:坐塑兰堑1日期:害鲤五至:! 生 第一章绪论 1 1 资产管理现状 第一章绪论弟一早珀下匕 随着我国经济的发展,各事业单位资产的拥有量在不断增大,资产在社会发展中 扮演着越来越重要的角色。为此,在2 0 0 3 年国务院成立了国有资产监督管理委员会, 代表国家履行出资人职责,对授权管理的企事业中的国有资产依法进行监督和管理, 并且于2 0 0 4 年发布国务院国有资产监督管理委员会行业协会工作暂行办法( 国资 研究 2 0 0 4 8 3 4 号) ,这个显著的特征就是,国家开始重视资产管理。此外,w t o 的 加入使得我国经济与世界经济进一步融合,资产管理手段与先进国家资产管理水平接 轨是大势所趋。显然,如果再沿用旧的模式管理资产,已经是不能适应新时代的需要。 1 】 随着我国国有资产管理体制改革的逐步深入和国有资产管理需求的不断增强,国 有资产管理信息化建设逐渐出现三个主要转变: ( 1 ) 管理对象转变,从固定资产管理向国有专项资产管理的转变; ( 2 ) 管理周期转变,从单一固定资产卡片管理逐步向国有专项资产的全过程管 理转变; ( 3 ) 管理目的转变,从固定资产基本管理和查询逐步向国有专项资产的管理、 统计、查询分析和决策支持转变。 公安边防部队既是一支执行警察任务的部队,又是按照部队条令、条例要求管理 和建设的人民警察队伍,具有军事和地方双重属性的特点。部队主要担负着保卫国家 领土主权安全,维护沿边沿海地区安全稳定的职责。我们课题组有幸接手x 边防局支 队资产管理系统的研究开发,其对拓宽我们学校的发展有着积极的作用。堙 1 2j 2 e e 介绍 在以下的小结中把该课题中的相关技术进行简单介绍。 j 2 e e 容器为j 2 e e 应用程序组件提供运行时支持。j 2 e e 应用程序组件使用容器 的协议和方法访问服务器提供的其他应用程序组件和服务。a p p l i c a t i o ns e r v e r 提 供了应用程序客户机容器、小应用程序容器、w e b 容器和e j b 容器。口1 1 2 1m v c 介绍 模型视图控制( m v c ) 是种新的软件设计模式,其思想就是实现功能模 块、显示模块和数据处理模块的分离,减少系统的耦合性。m v c 强制性的把应用程序 的输入、处理和输出分开。i f 【v c 把应用程序分成三个核心模块:模型、视图和控制器, 其分别担任不同的任务。 北京化- t 大学硕上学位论文 选择视图 c o n n o i k r ( 控制器) 接受用户请i 业务处理 求,调用模犁响应用; 户请求,选择视图响 应结果。 用户请求 一一一t 一 m o d e i ( 模型) 代表应用程序状l 态。响应状态查询,“y 1 1 ,二i ,。i ,l ! 且u 一一 -处理业务流程,通知 ;视图业务状态更新。 - 方法调用 斗事件 图1 1m v c 设计模式 f i g 1 一lm v cd e s i g nm o d e 上图显示了这几个模块各自的功能以及他们的相互关系。 ( 1 ) 模型( m o d e l ) 模型是应用程序的主体部分。模型表示业务数据和业务逻辑。一个模型能为多个 视图提供数据,同一个模型可以被多个视图重用,所以提高了应用的可重用性。 ( 2 ) 视图( v i e w ) 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接受用户 的输入数据,但是它并不进行任何实际的业务处理。视图可以向模型查询业务状态, 但不能改变模型。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步 更新。 ( 3 ) 控制器( c o n t r o l l e r ) 控制器接受用户的输入并调用模型和视图去完成用户的需求。当w e b 用户单击 w e b 页面中的提交按钮来发送h t m l 表单时,控制器接受请求并调用相应的模型组件去 处理请求,然后调用相应的视图来显示模型返回的数据。 ( 4 ) m v c 处理过程 m v c 首先由控制器接收用户的请求,并决定应该调用哪个模型来进行处理;然后 模型根据用户请求进行相应的业务逻辑处理,并返回数据:最后控制器调用相应的视 图来格式化模型返回的数据,并通过视图呈现给用户。 1 2 2j s pm o d e l l 幂口m o d e l 2 j s p 文件是一个独立、自主完成所有任务的模块,同时也导致诸多问题,例如h t m l 代码和j a v a 程序代码强耦合在一起、内嵌的流程逻辑错综复杂、调试困难等。s u n 2 第一章绪论 公司为了解决以上问题先后制定了两种规范,称为j s pm o d e l l 和j s pm o d e l 2 。 1 请求 _ j s p 应用 :t l 一:一一, 服务器i : :浏览器二响譬; | :z 实力化 。 一,一丫! 。j 二二a ij a v a b e a i l 一一一_ 一卜数据库i : 、一一一一 卜,一乡 浏览器 w e b 服务器应用服务器和数据库 图1 2j s p 模式l f i g 1 2j s pm o d e l 1 j s pm o d e l l 和j s pm o d e l 2 的本质区别在于处理用户请求的位置不同。如图卜2 所示,在m o d e l l 体系中,j s p 页面负责响应用户请求并将处理结果返回给用户。j s p 既要负责业务流程控制,又要提供表示层数据,同时充当视图和控制器,未能实现这 两个模块之间的独立和分离。尽管m o d e l l 体系十分适合简单应用的需要,它却不适 合开发复杂的大型应用程序。不加选择的随意运用m o d e l l ,会导致j s p 页面内嵌大量 的j a v a 代码。尽管这对于维护j a v a 程序员来说可能不是什么大问题,但如果j s p 页 面是由网页设计人员开发并维护的,则成为了一个问题:从根本上将导致角色定义不 清和职责分配不明的弊端,给项目管理带来很多麻烦。 1 。请o i _ 卜器p 三一, ! 一5 ,一l :嚣冒l 一二一孟b e 锄j s p j a v a b e a n 应用 服务器 ,_ 一一- 3 | - 一矗 - :1 女据库 。 1 一 应用服务器和数据库 j s pm o d e l 2 体系结构是一种联合使用j s p 与s e r v l e t 来提供动态内容服务的方 法。它吸取了j s p 和s e r v l e t 两种技术各自的突出优点,用j s p 生成表示层的内容, 让s e r v l e t 完成深层次的处理任务。在m o d e l 2 中,s e r v l e t 充当控制器的角色,负责 处理用户请求,创建j s p 页面需要使用j a v a b e a n 对象,根据用户请求选择合适的j s p 页返回给用户。在j s p 页内没有处理逻辑,它负责检索原先由s e r v l e t 创建的j a v a b e a n 对象,从s e r v l e t 中提取动态内容插入到静态模板。这是一种有突破性的软件设计方 法,清晰的分离了表达和内容,明确了角色定义以及开发者和网页设计者的分工。项 目越复杂,使用m o d e l 2 设计模式的好处就越大。h 明3 北京化工大学硕士学位论文 1 2 3m v c 模式优点 本系统采用m v c 模式设计,其优点如下: ( 1 ) 可以为一个模型在运行时同时建立和使用多个视图。传播机制可以确保所 有相关的视图及时得到模型数据变化,从而使所有关联的视图和控制器做到行为同 步。 ( 2 ) 视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根据需 求动态的打开或关闭、甚至在运行期间进行对象替换。 ( 3 ) 模型的可移植性。因为模型是独立于视图的,所以可以把一个模型独立地 移植到新的平台工作。需要做的只是在新的平台上对视图和控制器进行新的修改。 ( 4 ) 有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有 某些相同的特征,有利于通过工程化、工具化产生管理程序代码。 当今流行的m v c 框架有s t r u t s 、s p r i n g 和h i b e r n a t e 。 1 3st r u ts s t r u t s 是a p a c h e 基金会的一个o p e ns o u r c e 项目,基于s u nj 2 e e 平台的m v c 框架,主要采用s e r v l e t 和j s p 技术来实现,能够很好地帮助j a v a 开发者利用j 2 e e 开发w e b 应用,s t r u t s 也是面向对象设计。其实现的重点在控制层c ( c o n t r o l l e r ) , 包括a c t i o n s e r v l e t r e q u e s t p r o c e s s o r 和定制的a c t i o n ,也为视图层提供了一系列 定制标签。s t r u t s 实质上就是在j s pm o d e l 2 的基础上实现的一个m v c 框架。在s t r u t s 框架中,模型有实现业务逻辑的j a v a b e a n 或e j b 组件组成,控制器由a c t i o n s e r v l e t 和a c t i o n 来实现,视图由一组j s p 文件构成。下图显示了s t r u t s 实现的m v c 框架。 ! i ;s t r u t s c o n f i g x m l ;一t 一- l 一: a c t i o n s e r v l e t一 l ,f 控制器:- a c t i o n i 一、一 i 一 : 。1 。 浏览器;卜w e b 服务器:j 、 一一、 ;:l 厂二 ij 、掣羔2 、 。 ! a c t i o n 1 1 + 一一一 | 二一一一j e r v l e 蔓z 埋查咒一一j 图1 4s t r u t s 实现的m v c 框架 f i g 1 4m v c 印p l y e db ys t r u t s 4 j a v a b e a n e j b , 模型 第一章绪论 1 3 1 模型 在s t r u t s 框架中,模型分为两个部分,系统的内部状态和事务逻辑。内部状态 通常用一组a e t i o n f o 砌b e a n 表示。 根据设计或应用程序复杂度的不同,这些b e a n 可以是自包含的并具有持续的状态,或只在需要时才获得数据。模型表示应用程序的 状态和业务逻辑,对于大型应用系统,业务逻辑通常由j a v a b e a n 或e j b 组件来实现。 1 3 2 视图 视图就是一组j s p 文件。在这些j s p 文件中没有业务逻辑,也没有模型信息,只 有标签,这些标签可以是标准的j s p 标签或客户化标签,例如s t r u t s 标签库中的标 签。通常把s t r u t s 框架中的a c i t o n f o r mb e a n 也划分到视图模型中。a c t i o n f o r mb e a n 也是一种j a v a b e a n ,除了具有一些j a v a b e a n 的常规方法,还包含一些特殊的方法。 其用于验证h t m l 表单数据,同时还可以将其属性重新设置为默认值。s t r u t s 框架利 用a c t i o n f o r mb e a n 来进行试图和控制器之间表单数据的传递,如下图所示。s t r u t s 框架把用户输入的表单数据保存在a c t i o n f o r mb e a n 中,把它传递给控制器,控制器 可以对a c t i o n f o r mb e a n 中的数据进行修改,j s p 文件使用s t r u t s 标签读取修改后的 a c t i o n f o r mb e a n 的信息,重新设置h t m l 表单。 j 。 , a c t i o n f o r mb e a n 包含用户输入数据 :一 视图组件 控制器 _ 一赢赫m 胁n | a c t i o n f o r mb e a n 包含修改后数据 1 3 3 控制器 图1 5a c t i o n f o 加b e 锄的作用 f 唔1 - 5t h e 允n c t i o no f a c t i o n f o r mb e 锄 s t r u t s 中,基本的控制器组件是a c t i o n s e r v l e t 类中的实例s e r v l e t ,实际使用 的s e r v l e t 在配置文件中由一组映射( 由a c t i o n m a p p i n g 类进行描述) 进行定义。 a c t i o n s e r v l e t 类是s t r u t s 框架中的核心组件。a c t i o n s e r v l e t 主要负责接收h t t p 请求信息,根据文件s t r u t s c o n f i g x m l 的配置信息,把请求转发给适当的a c t i o n 对象。如果该a c t i o n 对象不存在,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 类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程。 对于小型简单的应用,a c t i o n 本身也可以完成一些实际的业务逻辑;而对于大型的应 用,a c t i o n 充当用户请求和业务逻辑处理之间的适配器( a d a p 乞o r ) ,其功能就是将请 求与业务逻辑分开,a c t i o n 根据用户请求调用相关的业务逻辑组件。业务逻辑由j a v a 北京化工大学硕+ 学位论文 b e a n 或e j b 来完成,a c t i o n 类侧重于控制应用程序的流程,而不是实现应用程序的 拦截。通过将业务逻辑放在单独的j a v a 包或e j b 中,可以提高应用程序的灵活性和 可重用性。 当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 实例的e x e c u t e ( ) 方法。a c t i o n 的e x e c u t e ( ) 方法返回a c t i o n f o r w a r d 对象,它封装了用户请求再转发 给其他w e b 组件的信息。用户定义自己的a c t i o n 类,即a c t i o n 基类的子类,必须覆 盖e x e c u t e ( ) 方法。在a c t i o n 基类中该方法返回n u l l 。 1 3 4 s t r u t s c o n f i g x m l 在s t r u t s 中,配置映射信息都存储在特定的x m l 文件s t u t s c o n f i g x m l 中。在 该配置文件中,每一个a c t i o n 的映射信息都通过一个 元素来配置。这些配 置信息在系统启动的时候被读入内存,供s t r u t s 在运行期间使用。在内存中,每个 元素都对应一个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 m a p p i n g 类的实例。 1 3 5s t r u t s 的工作流程 对于采用s t r u t s 框架的应用,在w e b 应用启动时就会加载并初始化 a c t i o n s e r v l e t ,a c t i o n s e r v l e t 从s t r u t s c o n f i g x m l 文件中读取配置信息,把他们 存放到各种配置对象中,例如a c t i o n 的映射信息存放在a c t i o n m a p p i n g 对象中。 当a c t i o n s e r v l e t 接收到一个客户的请求时,将执行如下流程。 6 第一章绪论 芏 遁网幢毫p o n 辨 - - 叫 执行请求的业务逻辑 k j 图l - 6s t n i t s 响应用户请求的工作流程 f i g 1 - 6t h en o wd i a g r 踟o f t h er e q u e s t ( 1 ) 检索和用户请求匹配的a c t i o n m a p p i n g 实例,如果不存在,就返回用户请求 路径无效的信息。 ( 2 ) 如果a c t i o n f o 珊实例存在,则创建一个a c t i o n f o r m 对象,把客户提交的 表单数据保存到a c t i o n f o r m 对象中。 ( 3 ) 根据配置信息决定是否需要表单验证。如果需要验证,就调用a c t i o n f o r m 的v a l i d a t e ( ) 方法。 ( 4 ) 如果a c t i o n f o r m 的v a l i d a t e ( ) 方法返回n u 儿或返回一个不包含 a c t i o n m e s s a g e 的a c t i o n e r r o r s 对象,就表示表单验证成功。 ( 5 ) a c t i o n s e r v l e t 根据a c t i o n m a p p i n g 实例包含的映射信息决定将请求转发给 哪个a c t i o n 。如果相应的a c t i o n 实例不存在,就先创建这个实例,然后调用a c t i o n 的e x e c u t e ( ) 方法。 ( 6 ) a c t i o n 的e x e c u t e ( ) 方法返回一个a c t i o n f o r w a r d 对象,a c t i o n s e r v l e t 再把客户请求转发给a c ti o n f o r w a r d 对象指向的j s p 组件。 ( 7 ) a c t i o n f o r w a r d 对象指向的j s p 自己生成动态网页,返回给客户。 其中流程( 4 ) ,如果a c t i o n f o r m 的v a l i d a t e ( ) 方法返回一个包含一个或多个 a c t i o n m e s s a g e 的a c t i o n e r r o r s 对象,则表示表单验证失败,此时a c t i o n s e r v l e t 将直接把请求转发给包含用户提交表单的j s p 组件。在这种情况下,不会再创建 a c t i o n 对象并调用a c t i o n 的e x e c u t e ( ) 方法。盯 北京化丁大学硕j :学位论文 1 4s p ri n g s p r i n g 是一个解决了许多在j 2 e e 开发中常见的问题的强大的框架。s p r i n g 提供 了管理业务对象的一致方法并鼓励注入对接口编码而不是对类编程的良好习惯。 s p r i n g 的框架基础是j a v a b e a n 属性的i o c ( 依赖注入) 容器。s p r i n g 提供了唯的 数据访问抽象,包括简单和有效率的j d b c 框架,极大的改进了效率并且减少了可能 的错误。s p r i n g 的数据访问构件集成了h i b e r n a t e 和其他的0 rm a p p i n g 解决方案。 s p r i n g 提供了一个用标准j a v a 语言编写的a o p 框架,它给p o j 0 s 提供了声明式的事 务管理和其他企业事务,如果需要还可以实现自己的a s p e c t s 。s p r i n g 提供了可以和 i o c 容器集成强大而灵活的m v cw e b 框架。它最大的优点是可以很容易地替换业务对 象。只要在j a v a b e a n 属性和配置文件中加入依赖性,就可以很容易地在需要时替换 具有类接口的协作对象。确1 轻量级从大小和系统开支上说s p r i n g 都是轻量级的。整个s p r i n g 框架可以 打成一个1 m b 多点的j a r 包,而且s p r i n g 的处理开支也非常小。更重要的是,s ”i n g 是非侵入式的:基于s p r i n g 开发的系统中的对象一般不易来于s p r i n g 的类。 反向控制s p r i n g 提倡使用反向控制( i o c ) 来实现松耦合。使用i o c ,对象 是被动接受依赖类而不是自己主动去找。 面向切面s p r i n g 对面向切面编程提供了强大的支持,通过将业务逻辑从系统 服务( 如监控和事物管理) 中分离出来,实现内聚开发。系统对象只做它们该做的工 作业务逻辑,其不负责其他系统问题( 如同志和事务支持) 。 容器s p r i n g 是一个容器,是因为它包含并且管理系统对象的生命周期和配 置。 框架s p r i n g 实现了使用简单的组件配置就能组合成一个复杂的系统。 s p r i n g 框架是一个分层架构,由7 个定义良好的模块组成。s p r i n g 模块构建 在核心容器之上,核心容器定义了创建、配置和管理b e a n 的方式,如图卜7 所示。 s p l 吨a o p s o u f c e i e v e l m e t a d a t a a o p i n 五强s t m c t u r e s p 哑w e b | ! w e b a p p l i c a t i o n m u i t 塞糕o i v e r ;ls p 血g 帆b m u i t i d a nr e s o l v e r l 3 p 川l gv v 也d w e bu t i l i t e sj !m v c s 黑曼? :s p 哑上下文 i ! 啪型o n叫:斌蔷:一 士1 尝祟婴d = 电邮件 支持j d b c 、d a o 。” s p i l g 核心容器 s u p p o r t i n gu t i l i t i e s e k a nc o n t a h e r 图1 7s p r i n g 的7 个模块 f i g 1 7t h e7m o d u l e so fs p r i n g 8 w e bm v c 框架 w e b 视图 j s p v e i o c i t y p d f e 愆e l 第一章绪论 组成s p r i n g 框架的每个模块( 或组件) 都可以单独存在,或者与其他一个或多 个模块联合实现。每个模块的功能如下: 1 4 1 核心容器 核心容器提供s p r i n g 框架的基本功能。核心容器的主要组件是b e a n f a c t o r y , 它是工厂模式的实现。b e a n f a c t o r y 使用i o c 模式将应用程序的配置和依赖性规范与 实际的应用程序代码分开。 1 。4 2s p r i n g 上下文 s p r i n g 上下文是一个配置文件,向s p r i n g 框架提供上下文信息。s p r i n g 上下 文包括企业服务,例如j n d i 、e j b 、电子邮件、国际化、校验和调度功能。 通过配置管理特性,s p r i n ga o p 模块直接将面向方面的编程功能集成到了 s p r i n g 框架中。所以,可以很容易地使用s p r i n g 框架管理的任何对象支持a o p 。 s p r i n ga o p 模块为基于s p r i n g 的应用程序中的对象提供了事务管理服务。通过使 用s p r i n ga o p ,不用依赖e j b 组件,就可以将声明性事务管理集成到应用程序中。 j d b cd a 0 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和 不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低 了需要编写的异常代码数量( 例如打开和关闭连接) 。s p r i n gd a o 的面向j d b c 的异 常遵从通用的d a 0 异常层次结构。 1 4 5 s p r i n go r m s p r i n g 框架插入了若干个o r m 框架,从而提供了o r m 的对象关系工具,其中 包括j d o 、h i b e r n a t e 和i b a t i ss q lm a p 。所有这些都遵从s p r i n g 的通用事务和 d a o 异常层次结构。 1 4 6 s p r i n gw e b 模块 w e b 上下文模块建立在应用程序上下文模块之上,为基于w e b 的应用程序提供 9 北京化工大学硕十学位论文 了上下文。所以,s p r i n g 框架支持与j a k a r t as t r u t s 的集成。w e b 模块还简化了处 理多部分请求以及将请求参数绑定到域对象的工作。 1 4 7 s p r i n gm v c 框架 s p r i n g 拥有一个全功能的构建w e b 应用程序的m v c 框架。通过策略接口,m v c 框 架变成为高度可配置的,m v c 容纳了大量视图技术,其中包括j s p 、v e l o c i t y 、t i l e s 、 i t e x t 和p o i 。 s p r i n g 框架的功能可以用在任何j 2 e e 服务器中,大多数功能也适用于不受管 理的环境。s p r i n g 的核心要点是:支持不绑定到特定j 2 e e 服务的可重用业务和数 据访问对象。这样的对象可以在不同j 2 e e 环境( w e b 或e j b ) 、独立应用程序、测 试环境之间重用。 1 5h i b e n a t e h i b e r n a t e 是一个开放源代码的对象关系映射框架,它对j d b c 进行了非常轻量级 的对象封装,使得j a v a 程序员可以随心所欲的使用对象编程思维来操纵数据库,实 现对象与关系数据库之间的映射。h i b e r n a t e 不仅仅管理j a v a 类到数据库表的映射 ( 包括j a v a 数据类型到s q l 数据类型的映射) ,还提供数据查询和获取数据的方法, 可以大幅度减少开发人工使用s q l 和j d b c 处理数据的时问。 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 , 完成数据持久化的重任。侧 h i b e r n a t e 的目标是与数据持久化相关的任务,解放程序员的9 5 的工作量。对 于基于j a v a 的中间层应用中,要实现面向对象的业务模型和商业逻辑的应用, h i b e r n a t e 是最有用的。h i b e r n a t e 可以帮助消除或者包装那些针对特定厂商的s q l 代码,并且可以把结果集从表格式的表示形式转换到一系列的对象上去。h i b e r n a t e 最好的使用方法是使用p o j 0 s ,这种编程模型来进行持久化。h i b e r n a t e 对每一种数 据库都有对应的d i a l e c t 进行操作优化,从而提高它在各种情况下的效率。 1 0 第一章绪论 :| f ;客户端:一j ;慧 ! ii - 。茹 j l 一 i 一一一 j :i _ 一一一j - 对象 卜d o 对象_ k 对象r 一 ,一一、, 卜。! ? :”8 垃 _- 数据库 j ,一 x ml ma p ph g : i , j 一 持久层 图b 采用h 玉e m a 垃的s 恤拉数据库应用系统结构 图1 8 采用d a o 构成持久层与采用h i b e m a t e 的s t r u t s 数据库应用系统结构对比 f i g 1 - 8t h ed i f f | e r e n t i ao fs t r u t ss y s t e mo fd a o a n dh i b e m a t e 对于普通的数据库应用程序( 如图卜8a 所示) ,其1 1 自j 接和高效的结构能很好的满 足应用系统的要求。但是如果应用系统中含有大量复杂的s q l 查询和数据流,并且这 些复杂的功能都在d a 0 中实现,则d a 0 变得过于复杂、庞大而难以维护。解决的方法 有很多,例如在s q l 查询条件较复杂时,可以利用存储过程的方法来解决。但是采用 h i b e r n a t e 构成的对象一一关系映射框架式是更好的选择。图卜8b 就是采用 h i b e r n a t e 的s t r u t s 数据库应用系统结构。 h i b e r n a t e 程序的结构如下图所示,虚箭头表示数据的流向,利用h i b e r n a t e 的 对象关系映射功能,在程序中以对象的方式( 读写) 数据库;实箭头表示利用 h i b e r n a t ea p i 操作数据的过程,通过连接工厂实例调用s e s s i o n f a c t o r y 实现对数据 库的操作( 例如记录的添加、删除和更新) 以及调用q u e r y 实现数据库查询。 一。、 啄刁躁颐射j 礴一一7j 数据对象数据对象,1:t i 磊二“l ;数据对豪 t 卜 一一卜连接妒文件_ _ 一_ s 锄镪;d a o 对象 c o n n e c 面n f a c 位i y ,且v a 5 p m 8 :- se s s j o n f a c 幻r y 数据库 操作 操作 一 一 呻“。珂 一搡作1 ;一- 一一- 一1 五五_ - o y yo 6 ;!i i 、一 图1 9h i b e m a t e 程序结构 f i g 1 9t h es t r u c t u r eo fh i b e m a t e 1 6 框架整合技术 北京化丁大学硕: 学位论文 s t r u t s + s p r i n g + h i b e r n a t e 是目前国内外众多知名软件企业最主流的应用

温馨提示

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

评论

0/150

提交评论