欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    富客户端技术Flex在知识管理系统中的应用.doc

    • 资源ID:880286       资源大小:451.37KB        全文页数:37页
    • 资源格式: DOC        下载积分:10积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要10积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    富客户端技术Flex在知识管理系统中的应用.doc

    1、 东北大学秦皇岛分校毕业设计(论文) 第 IV 页富客户端技术Flex在知识管理系统中的应用摘 要富网络应用系统(Rach Internet Application,RIA)技术允许我们在因特网上以一种使用Web一样简单的方式来访问富客户端程序,可以满足Web浏览者更高的、全方位的体验要求,使表示层的功能更加强大。本文介绍了RIA技术的概念、产生背景、技术特点,以及一些可用的RIA的技术方案。对Flex,Spring,iBATIS三种框架进行整合,设计出一个适合企业Web应用的Java通用架构,即将应用中的业务逻辑交给Spring管理,相关类用Spring的beans配置完成,由Spring管

    2、理与表现层交互的代理类及更下层的数据访问对象(Data Access Object)对象的关系,由iBATIS负责数据的持久化。系统利用Spring框架自身“非侵入性”的特点和Flex技术强劲的表现力,并结合实际项目云南移动知识共享平台中知识管理系统的开发详细阐述了基于Flex + Spring + iBATIS轻量级架构的RIA应用系统开发过程。本文的主要贡献在于,在对富网络应用系统Adobe Flex技术研究基础上,应用Adobe Flex技术构建富网络应用系统;验证了应用Flex构建RIA系统的可行性,以及其强大的表现功能。关键词:富网络应用系统,知识管理系统,Spring,Flex,i

    3、BATISThe Application of RIA Technology Flexin Knowledge Management SystemAuthor: Li Mou-mouTutor: Wang Xiao-minAbstractRIA (Rich Internet Application) technology allows us to access rich client application on internet as simple as using traditional web applications. It can satisfy Web users all-side

    4、d experience requirement; and make presentation tier more powerful.This thesis introduced the conception of RIA, the background of its emergence, its technical characteristic, and some available RIA technical methods and projects. This thesis did research on Flex, Spring and Hibernate frameworks, an

    5、d analyzed each frameworks function in web application layer. An architecture is integrated with the three frameworks which is suitable for enterprise web application. The architecture hands business logic of application to Spring, utilize beans configuration to manage the related classes, manage ob

    6、jects relation of between controller and data access object through Spring and make data persistence by iBATIS. In this thesis, we integrates Flex, Spring and iBATIS with Struts according to the characteristic of noninvasive in Spring and the driving representation of Flex technology, illustrated th

    7、e implementation procedure of lightweight RIA application in detail which is based on Dynamic Management System.Although RIA develops very fast, there are still little successful complicated enterprise applications, so this thesis attempts to realize a big enterprise application with RIA and J2EE. W

    8、e integrate RIA into an existing legacy system to establish rich internet application using Adobe Flex technology, and finish the Knowledge Management System, this experiment finally validates Adobe Flexs effects in implementing Rich Interact Application(RIA), and verified RIA system deliver desktop

    9、-like user interaction interfaces to the screens, and enrich overall user experience.Key Words: RIA, Knowledge management system, Spring, F1ex, iBATIS目 录1 绪论11.1 课题背景及意义11.2 论文的主要工作21.3 论文的组织结构32 框架介绍42.1 RIA技术42.1.1 RIA的定义42.1.2 RIA的产生背景52.1.3 RIA的技术特点52.1.4 RIA客户端开发技术62.2 Flex BlazeDS技术62.3 Spring

    10、框架72.4 iBATIS框架102.4.1 iBATIS介绍112.4.2 iBATIS应用事例112.5 三种框架整合的优势132.6 本章小结143 Flex技术在知识管理系统中的应用153.1 系统的整体架构设计173.2 架构中各层的详细设计173.2.1 域模型层173.2.2 持久层设计183.2.3 业务层设计193.2.4 表现层设计193.2.5 各层之间的关系193.3 本章小结204 知识管理系统的实现214.1 数据持久层的实现214.2 表现层的实现224.2.1 模型的实现224.2.2 视图的实现234.3 系统运行界面254.4 本章小结26结 论27致 谢2

    11、8参考文献29附 录30 东北大学秦皇岛分校毕业设计(论文) 第 33 页1 绪论随着Internet和Web技术的不断发展,Web应用系统在Internet上的使用也越来越广泛。Web应用不再是仅仅具有静态发布信息的简单功能,而且被要求具有实时动态处理交互信息的能力,此要求还在不断的变化和提高。1.1 课题背景及意义在经济活动日益信息化、知识化的21世纪,企业管理者面对企业内外环境中海量的数据、信息,如何将它们转化为有用的知识,并通过一系列技术和管理手段,使企业员工间能够高效率沟通以促进知识创新,从而使企业在竞争中赢得优势,已成为摆在企业管理者面前的重要问题1。知识管理正是解决上述问题的一门

    12、学科。知识管理是一种综合了计算机科学、信息系统与信息管理、人工智能、管理科学以及心理学等多学科知识与方法,通过对组织的知识资源进行系统化管理来提高组织效率、反应能力、竞争能力、创新能力和资本价值的信息管理理论与方法,是人类信息管理活动迄今为止最高级的形式和最新发展阶段2。本论文根据云南移动网络运维的特点,结合网络运维部门对知识共享系统的需求及目前所存在的问题,对网络运维知识共享技术进行了探索。根据网络中心员工对知识共享系统的需求,对其进行相应的改造或升级。本系统采用富互联网应用程序技术(Rich Internet Application,RIA)和Flex BlazeDS技术,采用iBATIS

    13、框架对系统进行了开发,满足了网络运维工作对知识共享系统的需求。富互联网应用程序是下一代的将桌面应用程序的交互的用户体验与传统的Web应用的部署灵活性和成本分析结合起来的网络应用程序3。富互联网应用程序中的富客户技术通过提供可承载己编译客户端应用程序(以文件形式,用HTTP传递)的运行环境,客户端应用程序使用异步客户/服务器架构连接现有的后端应用服务器,这是一种安全、可升级、具有良好适应性的新的面向服务模型,这种模型由采用的Web服务所驱动4。结合了声音、视频和实时对话的综合通信技术使RIA具有前所未有的网上用户体验。“富” 概念包含两方面,分别是数据模型的丰富和用户界面的丰富。数据中的“富”意

    14、思是用户界面可以显示和操作更为复杂的嵌入在客户端的数据模型,它可以操作客户端的计算和非同步的发送接收数据。这种模式相对于传统的HTML页面的优点是程序运行于客户端并且程序更多的是和用户进行交互同时更少的和服务器进行交互。平衡客户端和服务器端的复杂的数据模型可以让你有更大的空间去创建更高效和更具有交互性的网络应用程序。“富”同样也描述了全面提升的用户界面,HTML只给用户提供了非常有限的界面控制元素,而RIA的用户界面提供了灵活多样的界面控制元素,这些控制元素可以很好的与数据模型相结合。传统的因特网模型使用线性的设计,提供给用户一些选择然后用户发送选择结果给服务器,这种单一的模式不符合应用程序的

    15、灵活交互的要求和用户的意愿。频繁的服务器请求和页面刷新有很多的缺点包括页面打开缓慢和降低网络带宽。如果采用富客户界面,可以从以前的服务器响应影响整个界面,转移到只有收到请求的应用程序部分才会做出相应的变化。这本质上意味着界面被分解成许多独立的模块,这些模块都会对收到的信息做出相应的反应,有些会和服务器端进行交互,有些是这些模块之间的通信3。1.2 论文的主要工作本文的主旨是整合几种优秀的开源框架,寻找一种可以解决典型J2EE Web应用问题的良好解决方案,使浏览者获得高度互动性和丰富的用户体验。研究的内容主要包括以下几个方面:1、RIA技术、Spring框架、iBATIS框架的研究。Flex应

    16、用程序框架由MXML、AcfionScript及Flex类库构成。用Flex构建Web应用程序,能够有效地将桌面软件的强交互性和丰富内容与Web的广度结合在一起5。Spring作为一个轻量级的优秀的业务层框架,提供了一种管理你的业务对象的方法。Spring有分层的体系结构,这意味着你能选择使用它的一个或多个独立的部分,而它的架构又是内部一致的。iBATIS是当今市场上较灵活和较强大的ORM解决方案。主要实现数据持久层,是对于JDBC的轻量级封装。2、将Flex,Spring,iBATIS技术相结合,运用各框架的优势。Flex BlazeDS技术框架只是解决了表示层和控制层的问题,并没有给出模型

    17、组件的分离解决方案。Spring负责业务逻辑,iBATIS实现数据持久层。从而使实现应用程序业务逻辑的代码分离出来。并结合云南移动知识共享平台的设计分析各框架在系统不同层次应用带来的优势,以及系统中将三种框架整合的具体方法5。3、将 Flex BlazeDS + Spring + iBATIS这一整合框架应用于云南移动知识共享平台系统的设计与开发中。使用Flex BlazeDS + Spring + iBATIS作为系统的基础框架,使开发从底层的复杂代码实现中拯救出来,更多关注系统的业务逻辑。4、以云南移动网络运维的特点,结合网络运维部门对知识共享系统的需求及目前所存在的问题,对网络运维知识共

    18、享进行了探索。1.3 论文的组织结构本论文的结构如下:第1章主要介绍论文的研究背景、主要内容以及论文组织结构。第2章详细介绍了RIA技术的定义、产生背景、技术特点和目前已有的一些比较成熟的开发技术。主要介绍了Flex BlazeDS、Spring、iBATIS框架的体系结构、工作原理,并介绍了几种框架结合的优势。第3章讲解了Flex技术在云南移动知识共享平台中知识管理系统的应用。具体介绍了架构设计目标、功能模块和各层的详细设计等。第4章结合实际项目云南移动知识共享平台中知识管理系统的设计与开发,详细介绍了利用Flex BlazeDS + Spring + iBATIS轻量级架构实现项目的开发过

    19、程,包括数据持久层、业务服务层与表示层的具体实现。第5章对论文的研究结果进行了自我总结和评价,进一步明确了应用Flex技术在已有的遗留系统中引入RIA框架,构建富网络应用系统的可行性及优点。同时总结了Flex技术存在的不足和缺陷。2 框架介绍本系统采用富互联网应用程序技术(Rich Internet Application,RIA)和Flex BlazeDS技术,采用iBATIS框架对系统进行了开发。本章主要介绍各种技术的特点以及三种框架整合的优势。2.1 RIA技术RIA(Rich Internet Application),也就是富因特网程序6,是近几年提出来的一个新概念。RIA从英文原意

    20、理解,就是指一种丰富的应用程序,而相对于传统的网络应用而言的。在目前的网络应用之中,我们的内容基本上都是放置在我们熟知的HTML页面上的。而HTML页面本身仅仅是用于展示文本内容的一种技术,页面在多媒体及其他交互特性上已经慢慢不能满足网络浏览者更高的需求。因此有关厂商提出了这样一个新概念,希望将桌面的那种良好的交互设计、多媒体特性与互联网便于传播的优势结合在一起,创建新的网络应用程序,这就是RIA。2.1.1 RIA的定义RIA(Rich Internet Application,丰富互联网应用程序),是将桌面应用程序的交互的用户体验与传统的Web应用的部署灵活性结合起来的网络应用程序。RIA

    21、是集桌面应用程序的最佳用户界面功能与Web应用程序的普遍采用和快速、低成本布署以及互动多媒体通信的实时快捷于一体的新一代网络应用程序7。RIA中的Rich Client(丰富客户端)提供可承载已编译客户端应用程序(以文件形式,用HTTP传递)的运行环境,客户端应用程序使用异步客户/服务器架构连接现有的后端应用服务器,这是一种安全、可升级、具有良好适应性的新的面向服务模型,这种模型由采用的Web服务所驱动。结合了声音、视频和实时对话的综合通信技术使RIA具有前所未有的网上用户体验。RIA技术允许我们在因特网上以一种象使用Web一样简单的方式来部署富客户端程序。这是一个用户接口,它比用HTML能实

    22、现的接口更加健壮、反应更加灵敏和更具有令人感兴趣的可视化特性。无论将来RIA是否能够如人们所猜测的那样完全代替HTML应用系统,对于那些采用胖客户端技术运行复杂应用系统的机构来说,RIA确实提供了一种廉价的选择8。2.1.2 RIA的产生背景基于HTML的应用程序之所以变得流行是由于应用系统的部署成本低、结构简单,且HTML易于学习和使用8。很多用户和开发人员都乐于放弃由桌面计算机带来的用户界面改进,来实现对新数据和应用系统的快速访问。与丧失一些重要的UI功能相比,基于Web的方式所带来的好处要更大得多。然而,某些应用系统并不完全适合采用HTML技术。复杂的应用系统可能要求多次提取网页来完成一

    23、项事务处理,在某些领域中,如医药和财务领域,这往往导致交互速度低得无法接受。让我考虑一个项目管理系统:我们可以将其实现为一个HTML应用系统,但是如果用户可以看到并且操作图表、进度表和各种层次结构,那么显然会工作得更好。此外,虽然HTML开始走向简单,但是即使简单的交互活动也仍然需要用很多的脚本来完成。即使一个输入窗体经过仔细的布置和全面的脚本设计,它从浏览器所能发送的也仅仅是简单的“名字/值”对。如果一个HTML窗体能够以XML文档形式发送和接收更复杂的数据结构,那就好多了。RIA利用相对健壮的客户端描述引擎,这个引擎能够提供内容密集、响应速度快和图形丰富的用户界面。除了提供一个具有各种控件

    24、(滑标、日期选择器、窗口、选项卡、微调控制器和标尺等)的界面之外,RIA一般还允许使用SVG(Scalable Vector Graphics,可伸缩向量图)或其他技术来随时构建图形。一些RIA技术甚至能够提供全活动的动画来对数据变化作出响应。RIA的另一个好处在于,数据能够被缓存在客户端,从而可以实现一个比基于HTML的响应速度更快且数据往返于服务器的次数更少的用户界面。对于无线设备和需要偶尔连接的设备来说,将来的趋势肯定是向富客户端的方向发展,并且会逐渐远离基于文本的Web客户端。那些运行在膝上设备上的应用系统,可以被设计成以离线方式工作,或者至少当连接丢失的时候能基本上以离线的方式工作。

    25、2.1.3 RIA的技术特点富网络应用系统利用具有很强交互性的富客户端技术来为用户提供一个更高和更全方位的网络体验。RIA具有的桌面应用程序的特点包括:在消息确认和格式编排方面提供互动用户界面;在无刷新页面之下提供快捷的界面响应时间;提供通用的用户界面特性如拖放式(drag and drop)以及在线和离线操作能力。同时RIA具有的Web应用程序的特点包括如:立即布署、跨平台一、采用逐步下载来检索内容和数据以及可以充分利用被广泛采纳的互联网标准。RIA具有通信的特点则包括实时互动的声音和图像。客户机在RIA中的作用不仅是展示页面,它可以在幕后与用户请求异步地进行计算、传送和检索数据、显示集成的

    26、用户界面和综合使用声音和图像,这一切都可以在不依靠客户机连接的服务器或后端的情况下进行。RIA能提供的常用功能如下:1、RIA提供类似于浏览器的UI组件,增加了新本地化,更多组件。例如:包含数字递进器,滑动控制,在线数据表格和菜单栏。2、RIA允许使用布局管理组件,象标签向导,折叠栏,树型,还有一些其它的布局。3、RIA提供拖动-释放(drag and drop)能力。4、RIA中的语言风格对所有客户端都是一致的,所以无需为不同应用重写代码。5、请求/回复模型不是所有用户界面动作都必须的。使用RIA,用户与界面交互只需要处理所需要的部分。RIA可以使用HTTP协议方法上传数据到应用程序服务器。

    27、6、可以使用多组件事件处理。7、允许在客户端存储更多信息以代替HttpSession,减少了服务器的内存消耗。2.1.4 RIA客户端开发技术RIA技术的出现允许我们在因特网上以一种像使用Web一样简单的方式来部署富客户端程序,下面介绍一下目前比较有实力或者有特点的RIA认客户端开发技术Flex:Flash从60开始Flash就逐步具备建立窗体风格的应用程序的功能。据Macromedia称已经有98以上的桌面系统的浏览器都安装了Macromedia Flash Player。这使得以Macromedia Flash Player为客户端的RIA可以支持种类广泛的平台和设备。F1ex是为满足希望

    28、开发RIA的企业级程序员的需求而推出的表示服务器和应用程序框架,它可以运行于J2EE和.NET平台。Flex表示服务器提供基于标准的、声明性的编程方法和流程,并提供运行时服务,用于开发和部署丰富客户端应用程序的表示层。Flex开发者使用直观的基于XML的MXML来定义丰富的用户界面。该语言由Flex服务器翻译成SWF格式的客户端应用程序,在Flash Player中运行。2.2 Flex BlazeDS技术简单的讲,BlazeDS可以将你的Java类暴露为Remoting服务(Remoting服务是Flex的一种高效数据传输方式),使用BlazeDS还可以暴露公共的消息订阅服务,以及包括Web

    29、 Service在内的所有服务的代理服务,后端与前端的通讯是字节形式的对象之间的转换,Flex客户端直接就可以调用Java端的方法,无需考虑其他复杂问题就可以实现大数据量数据传输,这样使得客户端的性能得到很大提升9。利用Spring来管理 Message Broker,将BlazeDS集成成为Spring框架的一部分,Spring会把请求转发给Flex Message Broker,同时也会把Spring中的一些Bean暴露成Flex Remoting Service,那么Flash在客户端就能“调用” 到Spring中暴露成Flex Remoting Service的Bean。Spring

    30、BlazeDS Inregration项目目标主要集中在简化与Flex客户端交互的Java服务端代码开发。2.3 Spring框架Spring实际上是文献10中所阐述的设计思想的具体实现。在该文献中,Rod Johnson倡导J2EE实用主义的设计思想,并随书提供了一个初步的开发框架实现(Interface21开发包)。而Spring正是这一思想的更全面和具体的体现。Rod Johnson在Interface21开发包的基础之上,进行了进一步的改造和扩充,使其发展为一个更加开放、清晰、全面、高效的J2EE轻量级开发框架。以Spring为代表的轻量级框架已经对J2EE技术的发展趋势产生了非常重大

    31、的影响。2004年5月份,吸收了Spring、Hibernate框架优点的EJB3 JCP(Java Community Process)委员会的成立,在某种程度上意味着Spring已经宣告了EJB2时代的终结。Spring轻量级框架有着广阔的发展前景;从现状来看,Spring可以说是Java诸多开源框架中之集大成者,确立了Java企业应用开发的主流地位;从发展趋势来看,Spring将提供J2EE厂商所能够提供的所有必要的功能,最终Spring将有可能取EJB规范而代之,成为Java企业级应用开发的事实标准。Spring框架可以成为企业级应用程序一站式的解决方案,同时它也是模块化的框架,允许开

    32、发人员使用其中一部分的模块进行开发。比如,开发者可以使用Bean容器加之Web层的Struts框架进行工作,也可以只使用iBATIS集成框架或JDBC抽象层进行工作。Spring框架是一个松耦合的框架,框架的各部分耦合度被设计为最小,在各个层次上具体选用哪个框架取决于开发者的需要。Spring框架的核心和基础是IoC。在J2EE应用程序中,一个或多个容器的实例将应用程序和框架对象配置到一起,并且管理其生命周期;IoC的主要原则就是确保这些对象中的绝大多数不一定要依赖容器本身,而是通常可以完全按照接口(Interface)或抽象的超类(Superclass)来管理相关对象,无需担心那些其它对象是

    33、如何实现的,也不用担心它们在哪里。1、控制反转设计模式控制反转是一种新兴的设计模式,它关注组件的装配方式,其目的是将来自不同项目的组件组装为一个高度内聚的系统。控制反转模式的本质是将程序之间关系的控制权由程序代码转移到了外部容器。程序需要什么业务逻辑组件服务的时候只要通过配置文件告诉容器,而不用自己直接实例化对象。就是业界流行的“你不用调用,到时候我会来找你”,一切由容器管理,需要调用的所有业务逻辑模块都会由IoC容器组织起来,程序要做的就是直接使用所需要的服务。2、控制反转的实现策略依赖注入是目前最流行的IoC类型,依赖注入的形式有三种:他们分别是接口注入(Interface Injecti

    34、on),设值方法注入(Setter Injection)和构造子注入(Constructor Injection)。Spring框架的IoC容器采用后两种实现方式12。下面分别介绍这三种注入方法:(1) 接口注入。接口注入是一种比较老的注入方法,其核心思想是借助接口来将调用者与实现者分离,加载接口实现并创建其实力的工作由容器完成。如下代码所示:public class MyBusiness private IMyBusiness iBusiness;public Object doSomething(IMyBusiness obj) iBusiness = b;return iBusiness

    35、.doSomething( );这段代码运行期间,IMyBusiness实例将由容器提供,从而避免了MyBusiness依赖于IMyBusiness的实现,成功地将调用者与实现者在编译期分离。接口注入因为历史较为悠久,在很多容器中都已经得到应用。但由于在灵活性、易用性上不如其它两种注入模式,因而在IoC的专题世界内并不被看好。(2) 设值方法注入。设值方法注入在实际开发中应用最广泛,主要是通过类的Setter方法完成依赖关系的设值。下面用设值方法注入来改造示例代码。public class MyBusiness implements IMyBusiness private DataSource

    36、 ds;public void setDataSource(DataSource ds) this.ds = ds;setter方法是在容器初始化对象之后,处理任何业务方法之前被调用。因此没有必要担心涉及这些属性的线程问题。对于习惯了传统JavaBean开发的程序员而言,通过setter方法设定依赖关系显得更加直观,更加自然。如果依赖关系比较复杂,采用构造子注入,会导致构造器过于臃肿,难以阅读。Spring在创建Bean实例时,需要同时实例化其依赖的全部实例,因而导致性能下降。而使用设置注入,则能避免这些问题。尤其是某些属性可选的情况下,多参数的构造器更加笨重。(3) 构造子注入。使用构造子注

    37、入的时候,类似构造函数参数的形式描述自己需要的依赖关系,IoC容器会在实例化它的时候将依赖关系传递给它。这是2003年中期,由PicoContainer团队发明的注入方式。随后Spring和其它容器框架也相继实现了它。使用构造子注入的方式修改示例代码如下所示:public class MyBusinessObject implements MyBusinessInterfacefinal private DataSource ds;final private String message;public MyBusinessObject(DataSource ds, String msg)thi

    38、s.ds = ds;this.message = msg;这是一个简单的Java对象,它不依赖于任何特殊的IoC容器或者JNDI服务。它符合Java“在构造期即创建一个完整、合法的对象”的设计原则,避免了繁琐的setter方法编写。所有依赖关系均在构造函数中设定,因此依赖关系集中,更加易读。由于没有setter方法的编写,依赖关系在构造时由容器一次性设定,因此组件在被创建后处于相对稳定不变的状态。开发者无需担心上层代码在调用过程中执行setter方法对组件的依赖关系带来破坏,特别是对于单例模式的组件影响更大。由于关联关系仅在构造方法中表达,只有组件创建者需要关心组件内部的依赖关系。对调用者而言

    39、,组件中的依赖关系处于黑盒之中。对上层屏蔽不必要的信息,为系统的层次清晰性提供了保证。通过构造子注入,意味着可以在构造函数中决定依赖关系的注入顺序。对于一个大量依赖外部服务的组件,依赖关系的顺序非常重要。根据以上对于三种注入方式的分析,可以知道这三种注入方法各有利弊。总得来说,基于setter的依赖注入是最佳选择,因为它在非IoC的设置下对代码的影响最小。构造子注入,当需要确认依赖关系将被传递给组件的时候,是一个不错的选择。在Spring中对于设值注入和构造子注入提供了良好支持,为开发提供了多种选择的余地。(4) Spring IoC容器就Spring的核心而言,它是一个依赖注入容器,其设计哲

    40、学是提供一种无侵入式的高扩展性框架,即无需代码中涉及Spring专有类,即可将业务对象纳入。Spring容器进行管理。Spring提供了BeanFactory和ApplicationContext两种不同的IoC容器。BeanFactory是最简单的容器,提供了基础的依赖注入支持,它由org.springframework.beans.factory.BeanFactory接口定义,采用工厂模式来实现IoC。BeanFactory的主要功能是在系统编辑和织入JavaBean和POJO,消除大量的客户端单例模式调用。BeanFactory负责创建并维护Bean实例,根据给定的配置文件,它从中读取

    41、类名、属性名/值,然后通过反射机制进行Bean的加载和属性设定。Beanfactory提供了针对JavaBean的管理功能,而ApplicationContext提供了一个更为框架化的实现。ApplicationContext构建在BeanFactory基础之上,覆盖了BeanFactory的全部功能,并添加了其他大量功能,包括对国际化的支持、资源访问、事件传播和多实例加载等。此外,ApplicationContext为与现有应用框架相整合,提供了更为开放式的实现。2.4 iBATIS框架随着近年来设计思想和Java技术本身的演化,出现了很多JDBC的封装技术,这些技术为数据库访问层实现提供了

    42、更多的选择,其中有些是商业性的,如TopLink,有些则是非商业性的,如iBATIS和Hibernate。下面重点来介绍一下iBATIS。2.4.1 iBATIS介绍相对Hibernate和Apache OJB 等“一站式”ORM解决方案而言,iBATIS是一种“半自动化”的ORM实现。所谓“半自动”,可能理解上有点生涩。纵观目前主流的ORM,无论Hibernate 还是Apache OJB,都对数据库结构提供了较为完整的封装,提供了从POJO 到数据库表的全套映射机制。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过Hibernate或者OJB 提供的方法完成持久层操作。程序员

    43、甚至不需要对SQL 的熟练掌握,Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执行11。“半自动化”的iBATIS,却刚好解决了这个问题。这里的“半自动化”,是相对Hibernate等提供了全面的数据库封装机制的“全自动化”ORM 实现而言,“全自动”ORM 实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行。而iBATIS 的着力点,则在于POJO 与SQL之间的映射关系。也就是说,iBATIS并不会为程序员在运行期自动生成SQL 执行。具体的SQL 需要程序员编写,然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段

    44、映射到指定POJO12。使用iBATIS 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象,这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate会自动生成SQL 语句,而iBATIS 则要求开发者编写具体的SQL 语句。相对Hibernate等“全自动”ORM机制而言,iBATIS 以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。作为“全自动”ORM 实现的一种有益补充,iBATIS 的出现显得别具意义。2.4.2 iBATIS应用事例第一步:iBATIS实例配置一个典型的配置文件如下(具体配置项目的含义见后):


    注意事项

    本文(富客户端技术Flex在知识管理系统中的应用.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922