欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    优秀毕业设计精品]基于STRUTS+SPRING+HIBERNATE框架的信息交流平台的研究.doc

    • 资源ID:3261013       资源大小:466.52KB        全文页数:60页
    • 资源格式: DOC        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    优秀毕业设计精品]基于STRUTS+SPRING+HIBERNATE框架的信息交流平台的研究.doc

    分类号 密 级 U D C 编 号 工程硕士专业学位论文 基于Struts+Spring+Hibernate框架的信息交流平台的研究 The Research of information communication platform system Based on Struts+Spring+Hibernate frameworks :指导教师姓名、职称: 副 教 授:软 件 工 程:软 件 工 程二六年五月郑 重 声 明本人的学位论文是在导师指导下独立撰写并完成的,学位论文没有剽窃,抄袭,造假等违反学术道德,学术规范和侵权行为,本人愿意承担由此而产生的法律后果和法律责任,特此谨慎声明。学位论文作者: 学生的亲笔2006年 5 月 12 日摘 要随着网络技术的迅速发展和J2EE平台的广泛应用,基于B/S的多层WEB体系结构正在不断的完善。WEB技术的发展推动了信息化的发展,使人们能够不再受地理空间的限制与其他人进行信息的交流与共享。而开发这样一个信息交流平台,正是本论文要着手处理的问题。其实,就算用Java建造一个不是很烦琐的web应用程序,也不是件轻松的事情。当为一个应用程序建造一个构架时有许多事情需要考虑。从高层来说,开发者需要考虑:怎样建立用户接口(user interfaces)? 在哪里处理业务逻辑?和怎样持久化应用数据。这三层每一层都有它们各自的问题需要回答。各个层次应该使用什么技术?怎样才能把应用程序设计得松耦合和能灵活改变? 构架允许层的替换不会影响到其它层吗?应用程序怎样处理容器级的服务(container level services),比如事务处理(transactions)?本论文正是基于上述问题出发,以开发一个信息交流平台系统为背景,对基于MVC模式的Struts框架、Hibernate的ORM机制和对持久对象持久化的管理以及Spring IoC(控制反转)技术进行了探讨。并整合这三种框架:表现层使用Struts;业务层使用Spring;持久层使用Hibernate进行系统的开发。最后结合具体的事例对系统的实现作了详细的说明,验证了实现方法的可行性。关键词:J2EE Struts Hibernate Spring 模式 框架Abstract With the rapid development of network technology and the wide use of J2EE platform, the multilayer web structure base on B/S has developed gradually. WEB techniques development has promoted the development of informationization, it has made people can communicate and share information without area and space limitation. However, developing such kind of information communication platform is just the case in this thesis.Building non-trivial web applications with Java is no trivial task. There are many things to consider when structuring architecture to house an application. From a high-level, developers are faced with decisions about how they are going to construct user interfaces, where the business logic will reside, and how to persist application data. Each of these three layers has their own questions to be answered. What technologies should be implemented across each layer? How can the application be designed so that it is loosely coupled and flexible to change? Does the architecture allow layers to be replaced without affecting other layers? How will the application handle container level services such as transactions? This thesis is just base on these questions, taking an information communication platform system development as background, based on MVC architecture, discussed Struts frame, Hibernators ORM mechanism, persistent management of persistent object and Spring IoC technique and combining frameworks using three popular open source frameworks: For the presentation layer we will use Struts; for our business layer we will use Spring; and for our persistence layer we will use Hibernate to developing this system. At the end of the thesis, illustrate the way of realizing the system by an instance, and validate its feasibility.Key words:J2EE Struts Hibernate Spring Pattern Framework 目 录摘 要Abstract 第一章 引言11.1研究目的和意义11.2研究内容21.3论文的章节安排2第二章 Struts框架分析32.1 MVC模式介绍32.2 JSP Model 142.3 JSP Model 242.4 Struts概述52.5 Struts核心组件62.6 Struts 的工作流程7第三章 Hibernate技术介绍93.1 Hibernate概述93.2 ORM介绍93.3 Hibernate的核心接口103.4 Hibernate的检索方式12第四章 Spring技术介绍144.1 Spring框架概述144.2 Spring IoC(Inversion of control)164.3 Spring AOP17第五章 ICPS系统的设计205.1 系统简介205.2 系统需求分析205.3 框架设计215.4 数据库设计245.5 模块设计28第六章ICPS系统的实现306.1 域模块层的实现306.2 持久层的实现306.2.1 O/R映射316.2.2 DAO数据访问接口326.2.3 DAO数据访问实现336.3 业务层的实现346.3.1 业务逻辑处理类的实现356.3.2 Spring框架的配置376.4 表示层的实现396.4.1 View层的实现406.4.2 Model层的实现426.4.3 Controller层的实现436.5 小结46第七章 总结与展望477.1 本文的总结与展望47参考文献48致 谢50 IV第一章 引言1.1研究目的和意义从来没有任何事物的发展像互联网那样,对人类的活动产生如此深刻的影响。人们越来越依赖于Internet进行信息的交流与共享。随着网络的飞速发展,信息交流平台在网络上扮演角色越来越重要了。信息交流平台从她诞生的那一刻起就带有十分明确的个性化的人文色彩,作为一种远程电子通讯手段,信息交流平台允许一定范围内的用户以十分廉价的方式,方便快捷地进行信息和文件资源的共享,以信件和电子讨论的形式进行交流。毫不夸张的说,信息交流平台是网民互动沟通的最佳纽带,是互联网的灵魂。信息交流平台已成为主流网民不可缺少的一项基本生活内容。它在新兴的电子文化、信息咨询和商业服务领域也势必蕴藏巨大的市场。比如信息交流平台提供的信息布告区可为企业发布它的产品介绍、推广、宣传、服务等信息,能把企业的新产品快速的推向市场。所以对信息交流平台的研究是完全有必要的。J2EE 是 Sun ONE 的重量级产品,作为一种企业级 Web 应用程序开发技术,J2EE 是目前唯一在市场上得到了广泛应用的技术体系。J2EE 以 Java 为核心技术,更接近或者满足于互联网在智能化 Web 服务上对分布性、开放性和平台无关性的要求,同时它在安全性、健壮性、组件化等方面也更为成熟稳定,获得了众多IT 厂商如 IBM、Oracle、BEA 等共同制定标准并提供技术支持,因此具有强大的功能,是电子商务、远程教育等开发的首选平台。但是,即使我们用先进的J2EE来开发Web应用,也面临着许多问题需要考虑:怎样建立用户接口(user interfaces)?在哪里处理业务逻辑和怎样持久化应用数据?Struts、Spring、Hibernate这三个基于WEB应用开发的开源框架,可以为我们解决这些问题。如何把一个WEB应用分层而整合Struts、Spring、Hibernate技术,尽可能的将页面显示、业务逻辑和数据处理相分离,最大限度地降低系统各模块之间的耦合性,从而增强系统的可扩展性与可维护性,提高代码重用率,使系统的层次结构更加清晰,易于开发人员的分工协作,充分发挥开发人员的各自特长,这是一个值得研究探讨的问题。Struts是基于MVC模式的框架技术。采用Struts可以简化遵循MVC设计模式的Web应用的开发工作,很好的实现代码重用,使开发人员从繁琐的工作中解脱出来,快速开发具有强可扩展性的Web应用,大大简化开发过程,缩短开发周期,提高开发效率。Hibernate 是一项新兴的 ORM 技术,它把普通 java 对象映射到关系数据库表,并提供对对象的持久化操作。使得Java开发者能够高效地对关系数据库表进行增、删、改、查操作而不用直接面对JDBC、SQL语句,让开发人员把精力集中在如何解决实际业务处理问题上。而借助于Spring IoC和AOP,使得应用中对象的关系更加清晰、一致,而且还使得一切对象可控。最重要的一点是,对象本身的生命周期及对象之间的关系不用再让开发者费神了。基于上述分析,研究实现Struts、Spring、Hibernate三个框架的整合来解决Web应用开发中所面临的上述问题,从而提高程序的开发效率,增强系统的可扩展性与可维护性,提高代码重用率将会是一个很有意义的课题。1.2 研究内容 以实现一个信息交流平台为出发点,设计了一个整合Struts、Hibernate、Spring技术的架构,把整个应用系统分为四层:表示层,业务层,持久层, 域模块层。并分别用Struts、Hibernate、Spring实现了表示层,业务层,持久层,最终完成了本系统。1.3 论文的章节安排 第一章引言部分对本文所要研究课题的研究目的及意义作了简要的阐述,说明了课题的研究内容。 第二章介绍了MVC设计模式及基于MVC模式的Struts框架。对Struts架构的基本工作原理、核心组件的运行机制以及其工作流程进行了阐述。 第三章介绍Hibernate技术。主要阐述了ORM映射机制、Hibernate核心编程接口、Hibernate的检索方式。 第四章介绍Spring框架。主要阐述了Spring框架的七个功能模块以及Spring IoC、Spring AOP。 第五章基于信息交流平台,在对其进行需求分析的基础上进行了数据库设计和模块设计,并设计了一个整合Struts、Hibernate、Spring技术的架构,对应用系统分层。 第六章利用第五章所设计的WEB应用开发架构,实现了一个信息交流平台系统。并验证了所设计实现方法的正确性。 第七章总结及下一步展望。第二章 Struts框架分析作为对经典的MVC(Model-View-Controller,模型-视图-控制器)设计模式的一种具体实现,Struts是建立在当前Web开发领域中JSP、Servlet、XML等相关开发技术之上的一种主流的开发架构,是一种基于MVC的经典MVC设计模式框架。本章主要介绍了MVC设计模式、Struts架构的基本工作原理、核心组件以及Struts的工作流程。2.1 MVC模式介绍MVC模式,即模型-视图-控制器模式,其核心思想是将整个程序代码分成相对独立的而又能协同工作的3个组成部分1, 2。 模型(Model):业务逻辑层。实现具体的业务逻辑、状态管理的功能。 视图(View):表示层。即与用户实现交互的界面,是应用程序的外在表现,通常实现数据的输入和输出功能。 控制器(Controller):控制层。起到控制整个业务流程(Flow Control)的作用,实现View和Model部分的协同工作。上述三个组成部分之间的关系如图2-1所示。图2-1 MVC模式的结构在MVC设计模式中,事件一般是指客户端Web浏览器提交的各种不同的请求,这些请求由控制器进行处理,控制器根据事件的类型来改变模型或各个视图,视图也可以接受模型发出的数据更新的通知,根据数据更新的结果调整视图效果,展示给用户。而模型也可以通过视图所获得的用户提交的数据进行具体业务逻辑的处理。2.2 JSP Model 1 在JSP技术的发展初期,由于其便于快速开发的优点,很快就成为创建Web应用的热门技术之一。在JSP页面中可以很容易的同时实现内容的显示、业务逻辑的编写以及流程的控制,从而快速地完成应用开发。最初很多的Java Web应用甚至全部由JSP页面构成,这种以JSP为中心的开发模型被称为Model 1。其具体的实现方式如图2-2所示。 图2-2 JSP Model 1在JSP Model 1中,JSP页面负责接收处理客户端Web浏览器发送的请求,并在处理后直接进行响应。正是由于JSP页面本身同时充当了View和Controller两种角色,控制逻辑和表示层逻辑混杂在一起,导致代码的可重用性和可扩展性下降。2.3 JSP Model 2Model 2则是MVC设计模式的一种具体实现方式,如图2-3所示。在Model 2中采用Servlet作为控制器(Controller),负责接收客户端Web浏览器发送来的所有请求,并根据处理的不同结果,转发到对应的JSP页面(View)实现在浏览器客户端的显示。在Servlet中只包含了控制逻辑和一些简单的处理逻辑,更加复杂的业务处理逻辑则借助特定的JavaBean具体实现。由于引入了MVC设计模式,Model 2实际上是实现了基于组件的开发,在整个软件开发过程中实现了具体清晰的逻辑划分,能够有效的区分不同的角色,这就更适合于大规模系统的开发和管理。 图2-3 JSP Model 2Model 2实现了系统业务逻辑功能模块、显示模块和数据持久层处理模块的分离,同时还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。2.4 Struts概述作为基于MVC设计模式的Web应用的一种典型体现,Struts架构实际上是建立在Model 2基础之上的,对Model、View和Controller都提供了现成组件,其实现方式如图2-4所示。 图2-4 Struts MVC架构 从Model角度看,在Struts中,系统模型的状态主要由ActionForm Bean和值对象体现。从View角度看,Struts提供了java类org.apache.struts.action.ActionForm ,Java开发者继承该类来创建表单bean。另一方面,Struts提供了丰富的JSP标记库,View部分使用这些标记库可以实现与Model的有效交互并能增强显示。 从Controller角度看,在Struts体系机构中, Controller主要是ActionServlet,但是对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成(也许这几个组件,应该划分到模型中的业务逻辑一块)。其中,Action扮演了真正的控制逻辑的实现者,而ActionMapping和ActionForward则指定了不同业务逻辑或流程的运行方向。2.5 Struts核心组件对于Struts 如何控制、处理客户请求,让我们通过对struts的四个核心组件介绍来具体说明。这几个组件就是:ActionServlet,Action Classes,Action Mapping(包括ActionForward),ActionFrom Bean。u Struts ActionServlet ActionServlet继承自javax.servlet.http.HttpServlet类,其在Struts 框架中扮演的角色是中心控制器。它提供一个中心位置来处理全部的终端请求。控制器ActionServlet主要负责将HTTP的客户请求信息组装后,根据配置文件的指定描述,转发到适当的处理器。按照Servelt的标准,所有的Servlet必须在web配置文件(web.xml)中声明。同样,ActoinServlet必须在Web Application配置文件(web.xml)中描述。u Struts Action Classes所有的Action类都继承自org.apache.struts.action.Action,它是Struts架构中控制器组件的重要组成部分。Action 类主要负责将客户请求映射到处理这些请求的业务逻辑Bean,再转向生成响应回送给客户端的页面,实际上充当的是Controller和Model之间的一个适配器(Adaptor),其功能就是将请求与业务逻辑分开。这样的分离,使得客户请求和Action类之间可以有多个点对点的映射。而且Action类通常还提供了其它的辅助功能,比如:认证(authorization)、日志(logging)和数据验证(validation)。u Struts Action MappingActionServlet负责转发客户端请求给相应的Action对象进行处理,同时还转发了其他一些相关信息,这种请求和处理之间具体的映射关系保存在XML配置文件(默认是struts-config.xml)中。在系统启动初始化的时候,会对这些配置信息进行处理,系统针对每个<action>元素都创建一个与之对应的org.apache.struts.action.ActionMapping类的实例,以供struts应用程序运行期间使用。当ActionServlet转发请求时,ActionMapping实例被作为参数之一传给相应的Action对象的execute()方法。u ActionForwardAction类的execute()方法,返回值即为ActionForward类型。ActionForward对象是一种配置对象,代表了Web资源,可以是JSP页面、Servlet以及Action。ActionForward对象映射的是配置文件(默认是struts-config.xml)中的<forward>元素,封装了目标响应页面的URI。u Struts ActionForm Bean在Struts架构中,使用一种名为ActionForm的系统状态Bean,来实现应用系统的非持久性数据储存和维护功能。具体来说,ActionForm Bean对象主要用于保存用户请求表单中的数据,并可保持其状态的连续性,即在不同的页面间传递这些数据。为了实现自动被填充和调用的机制,该Bean必须是Struts API中定义的抽象类org.apache.struts.action.ActionForm的子类的实例。2.6 Struts 的工作流程Struts架构从接收请求到返回响应的工作流程如图2-5所示。在应用服务启动的时候,控制器(ActionServlet)进行初始化工作,读取配置文件(默认是Struts-config.xml文件),为不同的Struts模块初始化相应的ModuleConfig对象。比如配置文件中的Action映射定义都保存在ActionConfig集合中。控制器接受Http请求,并从ActionConfig中找到对应于该请求的Action子类,如果没有对应的Action,控制器直接将请求转发给JSP或者静态页面,否则控制器将请求分发至具体的Action类进行处理。图2-5 Struts请求响应流程在控制器调用具体的Action的Execute方法之前,ActionForm对象将利用Http请求中的参数来填充自己。Struts架构将检查UserActionForm是否存在,如果不存在,就会创建一个该类的实例。Struts将会使用HttpServLetRequest的相应字段来设置UserActionForm的状态。此外,还可以在ActionForm类中调用Validate方法来检查请求参数的合法性,并且可以返回一个包含所有错误信息的ActionErrors对象。如果执行成功,ActionForm自动将这些参数信息以JavaBean(一般称之为Form Bean)的方式保存在ServletContext中,这样它们就可以被其他Action对象或者JSP调用。Action的Execute方法执行完业务逻辑,返回一个ActionForward对象。控制器从这个对象中获取下一个视图的路径和重定向属性,最终将页面显示给用户。第三章 Hibernate技术介绍Hibernate是目前非常流行的ORM(Object/Relation Mapping)工具,是一个基于Java的开源代码的持久化中间件,它对JDBC进行了轻量级封装。本章主要介绍了ORM机制、Hibernate的核心接口以及Hibernate的检索方式。3.1 Hibernate概述 Hibernate是一种适合于Java语言的对象-关系映射(ORM)解决方案。它提供一个易用的框架来实现把一个面向对象的域模型映射到一传统的关系数据库。它不仅负责从Java类到数据库表格(以及来自Java数据类型的SQL数据类型)的映射,而且还提供数据查询和检索能力,并能大大减少花在SQL和JDBC手工数据处理上的开发时间。Hibernate技术本质上是一个提供数据库服务的中间件。它的架构如3-1图所示: 图3-1 Hibernate 架构图此图显示了hibernate的工作原理,它是利用数据库以及其他一些配置文件如hibernate.properties,XML Mapping等来为应用程序提供数据持久服务的。3.2 ORM介绍ORM(即对象-关系映射)模式指的是在单个组件中负责所有实体域对象的持久化,封装数据访问细节。它提供了实现持久化层的一种模式:采用映射元数据来描述对象-关系映射细节,使得ORM中间件能够在任何一个Java应用的业务逻辑层和数据库层之间充当桥梁。如下图所示。图3-2 ORM充当业务逻辑层和数据库层之间充当桥梁ORM解决的主要问题就是对象-关系的映射。域模型和关系模型都分别建立在概念模型的基础上。域模型是面向对象的,而关系数据模型是面向关系的,一般情况下,一个持久化类和一个表对应,类的每个实例对应表中的一条记录。描述对象和关系数据库之间映射细节的元数据通常采用XML格式,并且存放在专门的对象-关系映射文件中。映射语言是以Java为中心的,意味着映射是按照持久化类的定义来创建的,而非表的定义。3.3 Hibernate的核心接口应用程序可以直接通过Hibernate API访问数据库。有5个核心接口几乎在所有的Hibernate应用中都会用到。使用这些接口可以储存和取出持久对象或对事务进行控制。图3-3是这5个核心接口的类框图。 图3-3 Hibernate的核心接口的类框图u Session接口 Session(会话)接口是Hibernate应用使用最广泛的接口。Session也被称为持久化管理器,它提供了和持久化相关的操作:保存、更新、删除、加载和查询对象。Session不是线程安全的,因此在设计软件架构时,应该避免多个线程共享同一个Session实例。会话接口的实例是轻量级的且创建和销毁不需要消耗太多的资源。这意味着在程序中根据需要可以经常创建或销毁Session对象。 Hibernate会话是一个介于连接和事务之间的概念。可以简单地认为会话是对于一个单独的工作单元已装载对象的缓存或集合。Hibernate可以检测到这个工作单元中对象的改变。有时也将会话称为持续性管理器,因为它也是与持续性有关的操作例如存储和取出对象的接口。u SessionFactory接口应用从SessionFactory(会话工厂)里获得会话实例。一个SessionFactory实例对应一个数据存储源。它是线程安全的,这意味着它的同一个实例可以被应用的多个线程共享。会话工厂缓存了生成的SQL语句和Hibernate在运行时使用的映射元数据等。它也保存了在一个工作单元中读入的数据并且可能在以后的工作单元中被重用(只有类和集合映射指定了这种二级缓存是想要的时才会如此)。所以它是重量级的,这意味着不能随意创建或销毁它的实例。如果应用程序只访问一个数据库,只需要在应用初始化的时候创建一个会话工厂实例。如果应用同时访问多个数据库,则需要为每个数据库创建一个单独的会话工厂实例。u Configuration接口Configuration(配置)对象用来配置和引导Hibernate。Hibernate使用一个配置实例来指定映射文件的位置和Hibernate的特定属性,然后创建会话工厂。u Transaction接口Transaction(事务)接口是一个可选的API。Hibernate应用可以选择不使用这个接口,而是在它们自己的底层代码中管理事务。事务将应用代码从下层的事务实现中抽象出来这可能是一个JDBC事务,一个JTA用户事务或者甚至是一个公共对象请求代理结(CORBA)允许应用通过一组一致的API控制事务边界。这有助于保持Hibernate应用在不同类型的执行环境或容器中的可移植性。u Query和Criteria接口Query和Criteria接口是Hibernate的查询接口,用于向数据库查询对象,以及控制执行查询的过程。Query实例包装了一个HQL(Hibernate Query Language)查询语句,HQL查询语句类似于SQL查询语句,但HQL查询语句是面向对象的,它引用类名及类的属性名,而不是表名及表的字段名。Criteria接口完全封装了基于字符串形式的查询语句,比Query接口更加面向对象,而且它擅长于执行动态查询。3.4 Hibernate的检索方式从数据库中检索对象是使用Hibernate最有趣(也是最复杂)的部分。Hibernate提供了以下几种检索对象的方式:导航对象图检索方式。根据已经加载的对象,导航到其他对象。例如通过像aUser.getAddress().getCity()的属性访问器方法访问相关联的对象。如果Session是打开的,当你导航图时,Hibernate会自动装载图的节点。标识符检索方式。当对象的唯一标识符值是已知的时候,通过标识符检索是最方便最有性能的方法。Session的get()和load()方法提供了这种功能。HQL检索方式。使用面向对象的HQL查询语言。Session的find()方法用于执行HQL查询语句。此外,Hibernate还提供了Query接口,它是Hibernate提供的专门的HQL查询接口,能够执行各种复杂的HQL查询语句。这是Hibernate使用的最为广泛的一种检索方式。QBC检索方式。使用QBC(Query By Criteria)API来检索对象。这种API封装了基于字符串形式的查询语句,提供了更加面向对象的接口,它主要由Criteria接口、Criterion接口、和Expression类组成,支持在运行式动态生成查询语句。本地SQL检索方式。使用本地数据库的SQL查询,这种查询Hibernate只关心把JDBC 结果集映射到持久对象图。第四章 Spring技术介绍Spring 是一个以控制反转(Inversion of Control)原则为基础的轻量级框架。控制反转是一个用于“基于组件的体系结构”的设计模式,它将“判断依赖关系”的职责移交给容器,而不是由组件本身来判断彼此之间的依赖关系。本章主要阐述了Spring框架的七个功能模块:Spring核心模块、Spring AOP模块、Spring上下文(Context)模块、Spring Web模块、Spring DAO模块、Spring ORM模块、Spring Web MVC模块以及Spring IoC、Spring Bean的封装机制和Spring AOP。4.1 Spring框架概述Spring框架是一个分层的Java/J2EE应用程序框架,基于Expert One-on-One J2EE设计和发行的代码。Spring框架提供一种简单的开发技术,用于自动化处理工程中大量的属性文件和助理类。Spring 框架由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,图4-1所示。图4-1 Spring架构组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下: Spring核心容器模块:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 Spring 上下文(Context)模块:直接位于Spring核心模块之上。Spring 上下文模块除了继承Spring核心模块的功能外,还添加了用于资源绑定、事件移植、资源装载以及透明地装载上下文等功能。这对于Web应用和J2EE应用尤为有效,甚至可以认为Spring引入上下文模块更多地是为了简化开发Web应用和J2EE应用目的地。 Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。 Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。更重要的一点是它同时能够提供编程方式和声明方式控制事务。 Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。借助于Spring框架提供的简单事务声明,开发者能够很容易实现对O/R Mapping中操作的事务控制。 Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。 Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。4.2 Spring IoC(Inversion of control)控制反转(IoC)也称依赖注入(Dependence Injection简称DI),它的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器 (在 Spring 框架中是 IOC 容器) 负责将这些联系在一起。IoC指的就是由容器控制程序之间的关系,而非传统实现中由程序代码直接操控。这也就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。IoC的实现模式有三种:Type1 接口注入、Type2 设值注入、Type3 构造子注入。而Type2和Type3型的依赖注入实现是目前主流的IoC实现模式。Spring IoC容器采用Type2和Type3实现了IoC设计模式。为了实现对Spring IoC容器的访问,应用代码可以通过如下两个接口完成。 BeanFactory:位于org.springframework.beans.factory包中。它是工厂设计模式的实现,允许通过名称创建和检索对象,也可以管理对

    注意事项

    本文(优秀毕业设计精品]基于STRUTS+SPRING+HIBERNATE框架的信息交流平台的研究.doc)为本站会员(西安人)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开