(计算机应用技术专业论文)轻量级j2ee物流信息服务平台设计与实现.pdf_第1页
(计算机应用技术专业论文)轻量级j2ee物流信息服务平台设计与实现.pdf_第2页
(计算机应用技术专业论文)轻量级j2ee物流信息服务平台设计与实现.pdf_第3页
(计算机应用技术专业论文)轻量级j2ee物流信息服务平台设计与实现.pdf_第4页
(计算机应用技术专业论文)轻量级j2ee物流信息服务平台设计与实现.pdf_第5页
已阅读5页,还剩86页未读 继续免费阅读

(计算机应用技术专业论文)轻量级j2ee物流信息服务平台设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 j 2 e e 是一种简化企业解决方案的开发、部署和管理复杂性的体系结构。在信 息化时代的w e b 应用程序开发中,j 2 e e 以其良好的可移植性和可扩展性,占有 强大的竞争力优势。j 2 e e 体系架构虽然提供了一系列企业级服务标准,其应用模 型却差强人意。随着轻量级开源框架如雨后春笋般的涌现,通过将优秀的轻量级 框架应用到j 2 e e 开发中,从而组建轻量级j 2 e e 架构的方式很好的解决了传统 j 2 e e 开发中的问题。s p r i n g 框架是目前最流行,也是最具挑战性的轻量级框架。 s p r i n g 框架不仅可以整合很多优秀的表现层框架,还可以整合一系列的o r m 数 据持久化框架。本文结合具体的应用需求,以s p r i n g 框架为基础,将单层框架的 最佳实践组合在一起,提出了一个企业应用开发技术架构。 论文首先对轻量级j 2 e e 框架的思想进行了简要介绍,分析了m v c 开发模式 的设计思想,接着对s p r i n g 的总体结构、核心机制等作了比较细致的说明,并阐 述了j 2 e e 平台标准持久化技术规范j p a 。j p a 是新引入的数据持久化编程模型, 它利用j a v a 中的注解( a n n o t a t i o n ) 和对象关系映射,为数据持久化提供了更简 单、易用的编程方式。作者根据j 2 e e 分层设计的思想,将开发框架分为视图层、 控制层、业务逻辑层、数据持久层,并对每层的实现策略进行了研究。视图层引 入j s t l 标签和a j a x 技术,控制层分析怎样选用和改善s p r i n g 提供的众多控制器, 业务逻辑层引入了“开放封闭原则( o c p ) ”,数据持久层采用j p a 规范。最后文 章给出了以s p r i n g 框架为核心,整合j p a 持久层框架的企业应用开发框架的总体 结构设计。 论文结合实际项目“物流信息服务平台 的开发,详细阐述了基于s p r i n g 的 应用开发框架的系统设计与实现过程。针对系统的层次耦合度与横切关注点等关 键问题,作者提出采用控制反转模式和面向方面编程方法。控制反转模式可以用 来降低j 2 e e 多层应用系统中层与层之间的耦合度,面向方面编程方法用来处理应 用系统中散落在各模块中的横切关注点,从而可以分离系统核心业务代码与辅助 功能代码。整个系统层次分明,具有良好的扩展性、移植性和可维护性。 关键词:轻量级框架,依赖注入,面向切面编程,数据持久,物流信息化 a b s t r a c t a b s t r a c t j a v a2e n t e r p r i s ee d i t i o ni sak i n do fs y s t e ma r c h i t e c t u r ew h i c hp r e d i g e s t st h e c o m p l e xp r o b l e m ss u c ha st h ed e v e l o p m e n t ,d e p l o ya n dm a n a g e m e n to ft h ee n t e r p r i s e s e t t l es c h e m e b e c a u s eo ft h e g o o dp o r t a b i l i t ya n de x p a n s i b i l i t y , j 2 e ep o s s e s s e s p o w e r f u lc o m p e t i t i v es u p e r i o r i t y w 他as e r i e so fe n t e r p r i s es e r v i c ec r i t e r i o n s ,j 2 e e d o e s n tp r o v i d eas a t i s f y i n ga p p l i c a t i o nm o d e l a st h ee m e r g e n c eo ft h el i g h to p e n s o u r c ef r a m e w o r k , b ya p p l y i n gt h ee x c e l l e n tf r a m e w o r kt ot h ej 2 e ed e v e l o p m e n tt o b u i l dt h el i g h tj 2 e ea r c h i t e c t u r e ,i ts o l v e st h ep r o b l e m si nt r a d i t i o n a lj 2 e ed e v e l o p m e n t s p r i n gf r a m e w o r ki st h em o s tp o p u l a ra n dc h a l l e n g 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 c a ni n t e g r a t e 、析t l lp r e s e n tf r a m e w o r k sa n da l s oc a l li n t e g r a t ew i t ho rm a p p i n gd a t a p e r s i s t e n c ef r a m e w o r k s t h i sa r t i c l e w i l lb ec o m b i n e d 、舫mt h er e a la p p l i c a t i o n r e q u i r e m e n t sa n dp r o v i d eac o h e r e n ts y s t e ms t r u c t u r ew h i c hm a k e st h es i n g l el a y e r f r a m e w o r kw e l li n t e g r a t e db a s e do ns p r i n gf r a m e w o r k a tf i r s tt h i sa r t i c l ep r e c e d e sab r i e fi n t r o d u c t i o no ft h ei d e o l o g yo fl i g h tj 2 e e f r a m e w o r ka n da n a l y z e st h ed e s i g ni d e ao fm v cd e v e l o p m e n tp a t t e r n , t h e ng i v e st h e m o r em e t i c u l o u se x p l a i n a t i o na b o u tt h ec o l l e c t i v i t ys t r u c t u r ea n dc o r em e c h a n i s mo f s p r i n gl i g h tf r a m e w o r ka n de x p o u n d st h es t a n d a r do r m c r i t e r i o nj p ao fj 2 e ep l a t f o r m 。 j p ai san e we m e r g e n c ed a t ap e r s i s t e n c ep r o g r a m m i n gm o d e lw h i c hu s e st h ea n n o t a t i o n a n dt h eo b j e c t r e l a t i o nm a p p i n gt e c h n o l o g yp r o v i d i n gt h es i m p l e ra n de a s i e rw a yo f p r o g r a m m i n g o nt h eb a s i so ft h ed e l a m i n a t i o ni d e o l o g yo fj 2 e et h ea u t h o rd i v i d e st h e d e v e l o p m e n tf r a m e w o r kt 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 a n dd a t ap e r s i s t e n c el a y e r , a n dt h e nr e s e a r c h e st h ei m p l e m e n t a t i o ns t r a t e g yo fe v e r y l a y e r 1 1 1 ea u t h o ri m p o r t sj s t ll a b e la n da j a xt e c h n o l o g yi n t ov i e wl a y e r , a n a l y z e s h o wt oc h o o s ea n di m p r o v et h ec o n t r o l l e rs u p p l i e db ys p r i n gf r a m w o r k , i m p o r t s o p e n - c l o s e dp r i n c i p l ei n t ob u s s i n e s sl o g i cl a y e r , u s i n gj p a c r i t e r i o ni nd a t ap e r s i s t e n c e l a y e r a tl a s tt h et h e s i sg i v e st h ec o l l e c t i v i t ys t r u c t u r ed e s i g no fe n t e r p r i s ea p p l i c a t i o n d e v e l o p m e n tf r a m e w o r kw h i c hb a s e do ns p r i n gf r a m e w o r ka n di n t e g r a t e dw i t hj p a c o m b i n e d 、析mt 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 et h e s i ss e tf o r t ht 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 h l s eb a s e do nt h e n a b s t r a c t s p r i n gw e ba p p l i c a t i o nd e v e l o p m e n tf r a m e w o r k a i m i n ga tt h ep r o b l e mo fl a y e rl e v e l s c o u p l i n gd e g r e ea n dl a n d s c a p eo r i e n t a t i o na s p e c ta t t e n t i o n , t h ea u t h o rc o m e su pw i t h a d o p t i o nt h ei n v e r s i o no fc o n t r o lp a t t e r na n da s p e c to r i e n t e dp r o g r a m m i n gm e t h o d t h e i n v e r s i o no fc o n t r o lp a t t e r nc a nr e d u c et h ec o u p l i n gd e g r e ea m o n gt h el a y e r so fj 2 e e a p p l i c a t i o nd e v e l o p m e n t a s p e c to r i e n t e dp r o g r a m m i n gc a l ld i s p o s et h el a n d s c a p e o r i e n t a t i o na t t e n t i o np o i n t ss c a t t e r e db e t w e e nm o d e l 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 y s 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 ea s s i s t a n tf u n c t i o nc o d e t h ew h o l es y s t e mh a s ac l e a ra r r a n g e m e n ta n dp o s s e s s e sb e t t e re 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 ya n d 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 tf r a m e w o r k , i n v e r s i o no fc o n t r o l ,a s p e c to r i e n t e dp r o g r a m m i n g ,d a t a p e r s i s t e n c e ,l o g t i s t i ci n f o r m a t i o n i z a t i o n h i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:塑堑乞日期:。夕年月瑁 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:塑垒惫导师虢p 必 日期:泓年s 月吱年日 第一章引言 第一章引言 这一章介绍论文的背景和研究意义,分析轻量级框架的研究现状,并阐述本 文研究的主要内容与组织结构。使读者对本文的组织结构和研究内容有一个初步 的了解。 1 1 论文背景及研究意义 j c p ( j a v ac o m m u n i t yp r o c e s s ) 带l j 定了j 2 e e ( j a v a2e n t e r p r i s ee d i t i o n ) 的一系列 标准,其目的在于更好地促进企业应用开发。j 2 e e 提供了对e j b ( e n t e r p r i s ej a v a b e a n ) ,s e r v i a ,j s p ( j a v as e r v e rp a g e ) ,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 ) 等 技术的全面支持。其最终目标是成为一个优秀的支持企业级应用开发的体系结构, 简化企业级应用的开发、部署、管理和维护等复杂问题1 2 j 。事实上,j 2 e e 已成为 软件工程中企业级应用开发的业界标准和首选平台【3 】。 传统的j 2 e e 架构一般分为表现层、业务层和集成层三层结构。表现层由j s p 和s e r v l e t 实现,主要完成与用户的交互操作和数据的展示;业务层一般是由远程 e j b 或本地e j b 负责,完成系统核心业务逻辑的处理,包括了事务处理、远程调 用以及服务定位等;集成层主要负责与各种数据库的交互,由j d b c 或是由e j b 中的e n t i t yb e a n 实现。 业务逻辑层是整个j 2 e e 架构的核心组件,重量级组件e j b 的使用往往会导致 整个应用开发架构的可移植性、可测试性、可维护性和性能的下降。同时仅仅使 用表现层的j s p 和s e r v l e t 技术难以满足企业级应用的复杂性需求,且开发效率非 常低下。总之,j 2 e e 体系架构在提供了一系列企业级服务的标准的同时,却没能 提供一个令人满意的应用编程模型【4 j 。 e j b 的使用往往导致企业应用陷入过于复杂的局面,且开发的程序性能低下, 难以测试和维护成本很高。于是出现了轻量级j 2 e e 架构,从而替代了传统的重量 级j 2 e e 架构。轻量级框架的宗旨就是用更简单、更易于管理和维护的方式提供许 多“即插即用 的j 2 e e 服务。在支持最佳实践的同时,它们尽量使框架本身不可 见,最重要的是轻量级框架致力于使开发者能够首先使用p o j o ( p l a i no l dj a v a o b j e c t ,普通的j a v a 对象) 【5 j ,而不是类似e j b 的特殊对象【6 1 。 电子科技大学硕士学位论文 将优秀的轻量级开源框架应用到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 2 轻量级框架研究现状 对于应用开发来说,降低开发成本、缩短开发周期、提高可维护性和运行效 率是其追求的目标。对于w e b 开发来说也不例外。j 2 e e 平台的出现在一定程度上 减少了w e b 应用开发的成本和复杂度。但是平台本身体系结构过于复杂,开发和 维护成本的高昂,这使得j 2 e e 的架构方案常常无法让人满意【7 】。为此,现在许多 的w e b 应用框架提供了更为便捷的方案。目前较为流行的框架有很多,这里简单 列举其中的几个框架: s t r u t s 框架瞵j :s t r u t s 最早是作为a p a c h ej a k a r t a 项目的组成部分,项目的创立 者希望通过对该项目的研究,改进和提高j a v a s e r v e rp a g e s 、s e r v l e t 、标签库以及 面向对象的技术水准。s t r u t s 采用m v c 模式,能够很好地帮助j a v a 开发者利用 j 2 e e 开发w e b 应用。和其他的j a v a 架构一样,s t r u t s 也是面向对象设计,将m v c 模式“分离显示逻辑和业务逻辑”的能力发挥得淋漓尽致。s t r u c t s 框架的核心是 一个弹性的控制层,基于如j a v as e r v l e t s ,j a v a b e a n s ,r e s o u r c e b u n d l e s 与x m l 等标准技术,以及j a k a r t ac o m m o n s 的一些类库。s t r u t s 有一组相互协作的类( 组 件) 、s e r l v e t 以及j s pt a gl i b 组成。s t r u t s 的主要缺点是没有数据持久层的支持,其 m v c 实现没有划清模型和控制器之间的界限,缺少对除j s p 之外的其他视图技术 的支持等。 t a p e s t r y 框架例:t a p e s t r y 框架是一个位于s e r v l e t 容器和t a p e s t r y 应用程序之 间的层。t a p e s t r y 不是一个独立运行的服务器;它是一个s e r v l e t 的扩展,它运行于 s e r v l e t 容器或包含s e r v l e t 容器的应用服务器中。t a p e s t r y 仅仅是表现层的应用,或 者说t a p e s t r y 仅仅是将处理好的信息展现给终端用户。t a p e s t r y 不知道或者不关心 应用层、域逻辑层、或者信息的来源。t a p e s t r y 对应用没有任何要求,它只是关注 表现层是如何组织的。但t a p e s t r y 的主要缺点在于文档稀少且不完善,流转控制功 2 第一章引言 能比较薄弱。 j s f 框架【lo 】:j s f 全称j a v as e r v e rf a c e s ,是一种用于构建j a v aw e b 应用程 序的标准框架。它提供了一种以组件为中心的用户界面( u i ) 构建方法,从而简化了 j a v a 服务器端应用程序的开发。由于由j c p 推动,属于j a v ae e5 中的技术规范, 而受到了厂商的广泛支持。j s f ( j a v as e r v e rf a c e s ) 技术为开发基于网络用户界面的 j a v a 开发者提供了标准的编程接口a p i 以及标签库。就像s t r u t s 框架一样,j s f 定 义了一套j s f 标签,能够生成与j a v a b e a n 属性绑定在一起的h t m l 表单元素。从 应用开发者的角度看,两种框架十分相似,但是j s f 可能会得到更多的支持,因 为j s f 是j a v a 的标准。在未来的发展中,有可能所有的j 2 e e 应用服务器都需要支 持j s f 。 s p r i n g 框架 il l :s p r i n g 框架起源于其缔造者r o dj o h n s o n 2 0 0 2 年所写的( ( e x p e r t o n e 。o n o n ej 2 e ed e s i g na n dd e v e l o p m e n t ) ) 一书的基础代码。在这本书中,r o d 介 绍他自己的j 2 e e 经验,并且解释了e j b 为何常常葬送了整个项目。他坚信一种轻 量级的,基于j a v ab e a n 的框架完全可以满足大多数开发人员的要求。2 0 0 3 年2 月,他把所描述的框架在s o u r c e f o r g e n e t 公开了源代码,后来,这个框架就是演 变成了著名的s p r i n g 框架1 1 2 1o s p r i n g 的核心是轻量级容器,即实现了i o c ( i n v e r s i o n o fc o n t r 0 1 ) 模式的容器,s p r i n g 的目标是实现一个全方位的整合框架,s p r i n g 框架 实现了多个子框架的组合,这些子框架之间彼此可以独立,也可以使用其它的框 架方案加以替代i l3 1 。 s p r i n g 框架是这些轻量级框架中最流行也是最具挑战性的。它不像s t r u t s 、j s f 等单层框架只负责处理应用程序中的部分层,s p r i n g 是惟一处理典型的j 2 e e 应用 程序中所有结构层的且是惟一提供轻量级容器连同全方位服务的框架。s p r i n g 框架 采用一致的、高效的方式构造整个应用程序,将单层框架的最佳实践组合在一起 建立一个连贯的体系结构【1 4 1 。s p r i n g 框架就像一个粘合剂,将各个领域优秀的解 决方案组合到一起,构成一个新的架构,更好的为应用提供服务【1 5 】。 数据库o r m 技术的出现给人一种清新的感觉,它实现了对j d b c 的轻量级封 装,并且在数据库移植方面更是做到了令人欣慰的效果。例如,i b a t i s 和h i b e r n a t e 在数据持久层的成功给实体e j b 带来了严重的打击。对于企业级的j 2 e e 应用,越 来越多的人开始选择多层次的易扩展、易维护的结构,并且利用o r m 技术替代原 始的e j b 组件【1 6 1 。 由于s p r i n g 框架可以整合如o r m 、s t r u t s 等优秀的单层框架,因此大多数人 采用s s h ( 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 3 电子科技大学硕士学位论文 实现表现层,s p r i n g 实现业务逻辑层,h i b e r n a t e 实现数据持久层,这样的设计充 分利用了这三个框架的优势。然而,这样需要开发者对这三中框架都非常熟悉, 这样就使得开发者需要掌握s p r i n g 和s t r u t s 这两种轻量级m v c 框架,而且虽然 s t r u t s 有很灵活的标签,但其视图部分只支持j s p ,而不支持其他视图技术,而s p r i n g 却可以支持很多视图技术,通过结合j s t l 标签也可以达到s t r u t s 标签的效果。 h i b e r n a t e 框架是很优秀的数据持久层框架,但是h i b e r n a t e 框架非持久层的标准, 没有提供统一的接口,而新的j p a ( j a v ap e r s i s t e n c ea p i ) 规范不仅为持久层提供了统 一的接口,而且通过注解、元数据等功能可以很方便的实现数据库操作。因此本 文将采用s p r i n g + j p a 的方案来构造一个灵活的、易扩展的和易测试的w e b 应用开 发框架,并通过该框架开发出具有可伸缩性、可动态扩展、可维护的、可控制的 以及跨平台可移值的良性系统。 1 3 本文研究的主要内容 本课题主要以轻量级j 2 e e 框架为研究内容,分析当前流行的s p r i n g 框架的体 系结构、工作流程,并根据j 2 e e 四层结构的分层模式详细介绍了s p r i n g 框架的实 现,并对每一层遇到的问题提出了解决办法。主要研究内容如下: 1 重点分析轻量级s p r i n g 框架的总体结构、核心机制,探讨持久层框架j p a 和安全框架a c e g i 工作原理和实现机制,并将这两个框架与s p r i n g 进行整合,得 到一个用于开发多层w e b 应用的轻量级架构。 2 对此轻量级框架的四层结构进行研究,分析每一层存在的问题并提出解 决方案,如视图层通过结合j s t l 标签实现页面展示与业务逻辑分离,用于解决视 图层杂乱的j s p 代码问题。a j a x 的引入解决了以往同步请求造成用户漫长等待的 问题。s p r i n g 灵活的控制器为控制层提供了很多选择,其j a v a 反射机制自动绑定 请求数据到对象中,方便用户编程。在业务逻辑层,s p r i n g 的i o c 技术降低了业务 逻辑中类与类之间的相互依赖,为满足o c p 原则的设计提供前提。a o p ( 面向方 面编程) 技术为声明式事务管理提供了保障。数据持久层框架封装了与数据库连 接的代码,简化了数据库操作。同时a c e g i 安全框架集成在s p r i n g 中为系统提供 了安全支持。 3 设计出一个轻量级开发架构,该架构对应用程序四层结构进行了改进, 争取做到每一层都是最优处理方案,且代码的冗余度低,易于扩展和维护。 4 应用基于s p r i n g 开发出的轻量级架构,开发了一个实际项目物流信息 4 第一章引言 服务平台,详细阐述了系统中各层的设计与实现。系统开发过程证明,相对于经 典j 2 e e 体系架构,基于轻量级架构的应用系统的开发时间大幅度缩短,系统层次 分明,具有良好的扩展性、可维护性和可移植性。 本文旨在应用s p r i n g 框架作为系统体系结构的基础,并整合其它j 2 e e 开发框 架,得到一个具有一定集成度的软件开发架构,从而减少开发过程中各个领域间 整合所需工作量,降低开发风险。并以此架构为基础构建一个物流信息服务平台, 提供物流产业的功能构件,实现物流产业信息化的目的。期望通过该系统的构建 能降低物流流通的成本、改进对客户的服务、提高物流企业的竞争力。 1 4 本文的组织安排 本论文共分为六章。分别讲述了论文的研究背景、意义以及j 2 e e 技术发展现 状进行分析评述,并对本课题的研究内容和方法进行了描述;分析了本文所采用 的轻量级j 2 e e 框架;设计了基于s p r i n g 的w e b 应用开发架构;介绍了物流信息 服务平台项目具体的需求分析过程;构思了物流信息服务平台的总体设计过程; 给出了系统的实现过程和测试结果。并对所做工作进行了总结并提出了下一步的 工作内容及框架需要改进的地方。 第一章:简单介绍了课题背景,较详细的阐述了轻量级j 2 e e 框架的发展现状 和趋势以及本课题所开展的工作。 第二章:介绍了轻量级框架的含义、背景以及轻量级框架的优势,讨论了m v c 开发模式的优势,并详细介绍了基于m v c 模式开发的s p r i n g 框架的总体结构、 核心机制。为了将业务逻辑层同数据库操作分开,引入了数据持久层框架。 第三章:介绍了s p r i n g 框架的分层模型,并针对视图层、控制层、业务逻辑 层、数据持久层提出了要解决的问题及解决方案,最后给出了基于s p r i n g 的w e b 应用开发架构总体设计方案。 第四章:介绍了物流信息服务平台的项目背景、功能模块需求分析、非功能 需求分析、可行性分析,以及系统的业务流程分析。 第五章:介绍了物流信息服务平台的功能设计、系统静态结构图和数据库设 计。并根据第三章提出的架构层次给出物流信息服务平台的系统架构图及架构流 程分析,并详细介绍了视图层、控制层、业务逻辑层、数据持久层的设计过程。 第六章:展示了系统运行界面图,并根据系统设计得架构层次分别给出了视 图层、控制层、业务逻辑层、数据持久层的实现过程,最后给出了系统的测试结 电子科技大学硕士学位论文 果。 第七章:总结了自己的工作,提出了第三章设计的框架的优点和需要改进的 地方,并就w e b 框架的未来发展做出了展望。 6 第二章轻量级j 2 e e 框架研究 第二章轻量级j 2 e e 框架研究 本章介绍了轻量级开发框架,阐述了m v c 开发模式的核心思想,详细介绍了 s p r i n g 框架的架构体系与其核心机制原理,并讲述了j p a 持久化规范的基础理论, 为第三章构建基于s p r i n g 的w e b 应用开发架构奠定了理论基础。 2 1 轻量级框架概述 2 1 1 轻量级含义 轻量级框架的概念主要相对于传统的e j b 框架,其“轻量 也是相对于e j b 框架的笨重复杂和性能低下而言的。相对于轻量级框架,e j b 架构又被称为重量级 框架【1 7 】。 “轻量”的含义主要是指两个方面:简化的编程模型和提供更具响应能力的 容器。轻量级旨在消除与传统j 2 e ea p i 有关的不必要的复杂性和限制,缩短应用 程序的部署时间,从而提高生产效率,达到这一目的所需要的技术就是采用i o c 和a o p 技术。 2 1 2 轻量级背景 自从问世以来,e j b 技术规范就一直作为j 2 e e 的核心存在,用于简化企业应 用的开发。e j b 架构在企业级应用中发挥了巨大的作用,它让开发人员将注意力集 中于业务领域,而无需关注系统级的问题。然而大量工程实践证明e 肥架构存在 许多不足。随着j a v a 技术的发展,e j b 提供的大多数服务可以用新技术优雅而简 单的解决【l 引。 本着对技术的爱好和对完美的追求,在j 2 e e 领域的各个层面上,几乎所有的 主流产品都有来自开源项目的替代方案。其中很多开源产品甚至胜过商业产品。 轻量级框架,其思想最初出现于r i c h a r do b e r g 的动态代理r m i 设计与j b o s s 服务 器的微内核中。经过两三年的发展,形成了轻量级框架的完整解决方案,并显示 其完全可能取代传统e j b 框架的实力u9 1 。 电子科技大学硕士学位论文 2 1 3 轻量级优势探讨 e j b 架构是一种基于组件模型的系统架构。它提供了企业级应用的所有基础服 务,包括对事务处理、持久性、安全性、组件生命周期管理和资源管理、并发访 问管理、寻址服务、远程机制以及集群机制的内置支持。但是e j b 有很大的缺陷, 主要表现在其很强的侵入性。业务组件必须具有e j b 的接口声明,组件在接口和 实现中都显式依赖于框架而不能脱离框架而存在。另一方面,e j b 所有服务都必须 强制提供,即使系统只使用到了其中的少数几个服务,也必须付出运行所有服务 的代价。 轻量级框架是传统组件编程和普通对象编程的混合体,广泛采用i o c 依赖注 入机制,业务对象不存在框架的依赖。轻量级框架同样提供重量级框架所能提供 的各种企业级基础服务,并且针对e j b 架构的两大弊端,即强制提供所有服务和 组件接口具有很强的侵略性,做出彻底的变革,实现透明的、照单点菜式的服务 提供方式,可以按需配置需要的服务。 不同的基础架构带来性能上的不同,轻量级框架的代表s p r i n g 几乎在各种服 务性能上都要比本地e j b 更好,同时基于i o c 架构带来了更高的开发效率和代码 可测性【2 们。 2 2m v c 模式概述 m v c ( m o d e l v i e w - c o n t r o l l e r ,模型一视图一控制器) 1 2 1 1 设计模式体现了一种 “分离关注点 的思想,在实现三层b s 结构中具有得天独厚的优势。m v c 模 式经常作为一个设计模式出现在各种讨论中,但实际上m v c 是架构模式而非设计 模式【2 2 1 。 如图2 1 所示,m v c 构架模式可以理解为合成模式、策略模式和观察者模式 三者的混合。m v c 模式有可能会涉及到g o f ( g r o u po f f o u r ) 2 3 个设计模式中的 十几种。因此,一般把m v c 模式视作一种构架模式,它把应用程序的输入、处理 和输出强制性的分开。m v c 把应用程序分为三个模块:模型、视图和控制器,他 们之间的动态协作关系如图2 1 所示【2 3 1 。m v c 的三个模块分别承担不同的任务。 8 第二章轻量级j 2 e e 框架研究 模型( m o d i e ) 封装应用程序状态 l r响应状态查询 应用程序工程 、 l 状态查询? 一 通知视图改变 状态改变 - i 通知改变 i 1 0 视图( v i e w ) 解释模型 + 视图选择一 控制器( c o n t r o l l e r ) 定义应用程序行为 模型更新请求 佣户请求 用户动作映射成模型更新 发送用户输入给控制器 选择响应的视图 允许控制器选择视图 方法调用_一事件一一 图2 1m v c 动态协作关系图 1 ) 模型( m o d e l ) 有些模型( m o d e l ) 的实现方式是在实体b e a n 中进行业务逻辑处理和数据持久 化,这种方式导致类设计违反“单一职责 的面向对象设计原则。其实模型包括 三层含义:数据实体、业务处理和数据持久。最佳实践方式是将模型分为实体b e a n 、 业务服务和数据持久三个层次。实体b e a n 用来存储业务数据,业务服务负责提供 业务逻辑处理服务,并使用数据持久层将业务数据持久化到存储介质。 2 ) 视图( v i e w ) 视图用以数据的展现和数据显示逻辑的控制,是用户看到和之交互的界面。 视图会根据模型数据实体的变化,更新视图数据。视图一般是供控制器选择以适 当的方式展示数据的。视图可以是h t m l 静态页面,可以说d h t m l 动态页面, 还可以是j s p 页面、v e l o c i t y 页面和t a p e s t r y 页面等。视图技术非常丰富,目前比 较常用的有j s p 、j s f 、a j a x 、v e l o c i t y 和t a p e s t r y 等。 3 ) 控制器( c o n t r o l l e r ) 控制器用来进行操作管理和视图管理。操作管理指得是处理用户请求,并将 用户请求分派业务服务或转发给其他应用控制器。视图管理指得是控制器要根据 程序执行结果返回的视图页面的管理。控制器处于视图和模型之间,视图请求必 须经过控制器,控制器根据请求,分派不同的业务模型,然后选择视图页面进行 数据展示,能满足不同的业务需求。 电子科技大学硕士学位论文 m v c 模式能快速的构建松耦合、可扩展的三层或多层应用系统。以下说明基 于m v c 体系结构的请求处理的标准流程: 1 ) 用户通过浏览器发送一个请求。该请求被转发给控制器。 劲控制器处理该用户的请求,然后分派请求到模型或者转发请求到其他控 制器。 3 ) 模型调用业务服务根据业务规则处理处理该用户请求,并进行必要的数 据访问和存储操作。处理结果封装到实体b e a n ,并返回给控制器。 4 ) 控制器将实体b e a n 的数据进行再次封装,并选择展示该处理结果的视图 页面。 5 ) 视图页面根据数据显示逻辑,将结果数据展示在页面上。 2 3s p rin g 框架 s p r i n g 是轻量级开源框架的杰出代表,s p r i n g 可以称之为轻量级j 2 e e 开发框 架。s p r i n g 框架最大的优势在于组件化、松耦合和可测试性。s p r i n g 的每个模块都 是相互独立的,可以单独使用,而且各个组件之间是松耦合关系。 2 3 1s p rin g 架构体系研究 s p r i n g 的设计初衷就是能提供一个典型的轻量级j 2 e e 体系结构,满足大部分 应用系统的需求。它的分层体系结构,非常全面化和模块化,开发者可以选用其 中任何一个独立的单元。s p r i n g 的另一个设计目标就是让己有的技术更加易用,框 架对很多应用系统的开发技术都提供了抽象。 如图2 2 所示,s p r i n g 整体框架由7 个包组成:c o r e 、a o p 、d a o 、o r m 、 w e bc o n t e x t 、c o n t e x t 、w e bm v c t 2 4 1 。 1 )c o r e 包是s p r i n g 的核心部分,提供了i o c 特性。c o r e 包括了所有b e a n 的创建工厂b e a n f a c t o r y 。b e a n f a c t o r y 是经典的工厂模式f a c t o r y 的实现,用来实 例化和管理系统中的b e a n ,以降低类之间的依赖关系。 2 ) c o n t e x t ( 上下文) 以c o r e 包为基础:它提供一种访问对象的方式,采用框 架风格进行访问,类似于j n d i 注册表。c o n t e x t 封装包继承了b e a n s 包的功能,还 增加了国际化( 1 1 8 n ) ,事件传播,资源装载,以及透明创建上下文等。 3 ) d a o 是一种j d b c 的抽象方式。d a o 可以使得开发人员从冗长而又繁琐 的j d b c 编码和s q l 编码中解脱出来。并且,d a o 还提供了能用于p o j o s 的声 1 0 第二章轻量级j 2 e e 框架研究 明式事务处理方法。 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 e x t m u l t i p a r tr e s o l v e r 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 r e m o t i n gm a i l 图2 2s p r i n g 框架总体结构 4 )o r m 对常用的o r m 框架提供一个抽象,包括j p a 、j d o 、h i b e r n a t e 、i b a t i s 和t o p l i n k 等。使用o r m 可以让开发者脱离数据持久的细节,从而更关注于系统 的业务逻辑处理。 5 )a o p 包提供了符合a o p a l l i a n c e 规范的面向方面的编程实现。开发者可 以从切面入手,定义方法拦截器( m e t h o d i n t e r c e p t o r s ) 、切点( p o i n t c u t s ) 和引入 ( i n 仃o d u c f i o n ) ,从而减弱代码的功能耦合。 6 )w e b 包为w e b 开发提供诸多特性,包括w e b 上下文、多方文件上传。一 般的企业应用开发,使用的都是w e b 包,s p r i n g 的m v c 通常都会使用到改w e b 上下文。 7 )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 ) 模式。s p r i n g 的m v c 提 供了一个强大的控制层体系,采用i o c 机制,降低层次之间依赖性,并提供了一 定的视

温馨提示

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

评论

0/150

提交评论