《Spring读书报告.pdf》由会员分享,可在线阅读,更多相关《Spring读书报告.pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、硕 士 研 究 生 读 书 报 告题目作者姓名作者学号指导教师Spring 框架的学习陈柳21151075学科专业 软件与服务工程 1001 班所在学院提交日期软件学院二一一年十月The Effect Of The StrutsADissertation Submitted toZhejiang Universityin partial fulfillment of the requirements forthe degree ofMaster of EngineeringMajor Subject:Software EngineeringAdvisor:ByZhejiang Universi
2、ty,P.R.China2011摘要摘要本文重点探讨了 Spring的框架结构和它的主要工作流程。Spring 是一个基于 Sun J2EE 平台的框架,主要采用 Servlet 和 JSP 技术来实现。Spring 能充分满足应用开发的需求,简单易用,敏捷迅速,广受开发人员的喜爱。目前世界上很多的网站都是基于Spring 框架来实现的,当然这与他的众多优点是分不开的。Spring 为 web 应用开发提供了一个通用的框架,使得开发人员可以把精力集中在如何解决实际业务问题上。此外,Spring 框架提供了许多可扩展和定制的地方,使得应用程序可以方便的扩展框架,来更好的适应用户的需求。一旦掌握了
3、 Spring,就可以大大简化 Web 应用开发的过程,提高开发效率,缩短开发周期。关键词关键词:Spring 框架,IoC,AOP,SSH 框架集成AbstractAbstractThis article focuses on the Spring framework structure and its main work flow.Spring is a frameworkfor Sun J2EE platform,the main use of Servlet and JSP technologies.Spring application development canfully mee
4、t the demand,easy to use,quick and fast,widely loved by the developer.Many websites in theworld,including internal and external Internet sites are based on Spring framework.of course,with hismany advantages is inseparable from the Spring web application development to provide a commonframework that
5、allows developers can focus on dealing with real business issues.In addition,Springframework provides a scalable and customizable in many places,so applications can easily extend theframework to better meet the needs of users.Once mastered Spring,you can greatly simplify the process of Web applicati
6、on development andimprove development efficiency and shorten the development cycle.KeywordsKeywords:spring framework,Ioc,AOP,Integration of SSH.1 1 引言引言要谈 Spring 的历史,就要先谈 J2EE。J2EE 应用程序的广泛实现是在1999 年和 2000 年开始的,它的出现带来了诸如事务管理之类的核心中间层概念的标准化,但是在实践中并没有获得绝对的成功,因为开发效率,开发难度和实际的性能都令人失望。Spring 的一个最大的目的就是使J2EE
7、 开发更加容易。同时,Spring之所以与 Struts、Hibernate 等单层框架不同,是因为 Spring 致力于提供一个以统一的、高效的方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。可以说Spring 是一个提供了更完善开发环境的一个框架,可以为POJO(PlainOld Java Object)对象提供企业级的服务。2 2SpringSpring 简介简介Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,如图 1 所示。图 1.Spring 框架的
8、7 个模块组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:核心容器核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。SpringSpring 上下文上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。SpringSpring AOPAOP:
9、通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。SpringSpring DAODAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Sprin
10、gDAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。SpringSpring ORMORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring的通用事务和 DAO 异常层次结构。SpringSpring WebWeb 模块模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
11、SpringSpring MVCMVC 框架框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。Spring 框架的功能可以用在任何 J2EE 服务器中,大多数功能也适用于不受管理的环境。Spring 的核心要点是:支持不绑定到特定 J2EE 服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同 J2EE 环境(Web 或 EJB)、独立应用程序、测试环境之间重用。3 3SpringSpring 的核心概念的核心概念3.
12、13.1SpringSpring IoCIoCSpring 框架对控制反转(Inversion of Control,IoC)进行了实现。Spring IOC 容器管理的对象被称作 bean,使用 IOC,对象的依赖都是在对象创建时由负责协调系统中各个对象的外部实体提供的。在 Spring 中,那些组成你应用程序的主体(backbone)及由 Spring IoC 容器所管理的对象,被称之为bean。简单地讲,bean 就是由 Spring 容器初始化、装配及管理的对象,除此之外,bean 就与应用程序中的其他对象没有什么区别了。而 bean 定义以及 bean相互间的依赖关系将通过配置元数据
13、来描述。org.springframework.beans.factory.BeanFactory 是 Spring IoC 容器的实际代表者,IoC 容器负责容纳此前所描述的 bean,并对 bean 进行管理。在 Spring 中,BeanFactory 是 IoC 容器的核心接口。它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。Spring 为我们提供了许多易用的 BeanFactory 实现,XmlBeanFactory 就是最常用的一个。该实现将以 XML 方式描述组成应用的对象 以及对象间的依赖关系。XmlBeanFactory类将获取此 XML 配 置元数
14、据,并用它来构建一个完全可配置的系统或应用Spring IOC 的使用减少了对象之间依赖的高度耦合。在 Spring 中 IOC 容器可以通过读取配置的元数据来对各个对象(Bean)进行实例化、配置以及装载,而通常在 Spring中是使用 XML 文档来描述元数据的。图 2 为 Spring IoC 的原理图。图 2 Spring IoC 原理图3.23.2 SpringSpring AOPAOPAOP(Aspect Oriented Programming),也就是面向方面编程的技术。AOP 基于 IoC基础,是对 OOP 的有益补充。AOP 将应用系统分为两部分,核心业务逻辑(Core b
15、usiness concerns)及横向的通用逻辑,也就是所谓的方面 Crosscutting enterprise concerns,例如,所有大中型应用都要涉及到的持久化管理(Persistent)、事务管理(Transaction Management)、安全管理(Security)、日志管理(Logging)和调试管理(Debugging)等。AOP 正在成为软件开发的下一个光环。使用AOP,你可以将处理aspect 的代码注入主程序,通常主程序的主要目的并不在于处理这些 aspect。AOP 可以防止代码混乱。Spring framework 是很有前途的 AOP 技术。作为一种非侵
16、略性的、轻型的 AOPframework,你无需使用预编译器或其他的元标签,便可以在Java 程序中使用它。这意味着开发团队里只需一人要对付 AOP framework,其他人还是像往常一样编程。下图生动地反应了 AOP 的概念图 3 Spring AOP 概念4 4SpringSpring 与其他框架的集成与其他框架的集成SSH 框架指的是 Struts+Spring+Hibernate 的组合框架模式。Struts 的 MVC设计模式可以使我们的逻辑变得很清晰。Spring 的 IOC 和 AOP 可以使我们的产品在最大限度上解藕。hibernate 的当然就是实体对象的持久化了4.14.
17、1SpringSpring 与与 StrutsStruts 的整合的整合第一步就是引入 struts2 和 spring 最基本已经 struts 中的 spring-plugin 的 jar包,然后在 web.xml 配置 filter 引入 struts2 和配置 listener 引入 spring 如:struts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterstruts2/*org.springframework.web.context.ContextLoaderListener然后在str
18、uts.xml中配置action时要注意的是class对于的不再是具体的action类,struts 已经把注入的任务交给了 spring 了。至于引入 spring-plugin 这个 jar 包是因为它把 objectfactory 改为了 spring 中的 objectfactory。可以在 strutscore中看到 defaultproperties 的文件中看到#struts.objectFactory=spring,默认是不引用 spring 的 factory 的,但是引入 struts2-spring-plugin 的 jar 包后就会覆盖这个默认的设置。配置一个 acti
19、on 类的一个例子:首先在 applicationContext.xml 中配置相应的 bean;然后在 struts 中配置相应的 action:/loginsuccess.jsp/login.jsp4.24.2SpringSpring 与与 HibernateHibernate 的整合的整合下面是 Spring 配置文件中配置 Hibernate SessionFactory 的示范代码:lee/MyTest.hbm.xmlorg.hibernate.dialect.MySQLDialectupdate一旦在 Spring 的 IoC 容器中配置了 SessionFactory Bean,它将随应用的启动而加载,并可以充分利用 IoC 容器的功能,将 SessionFactory Bean 注入任何 Bean,比如DAO 组件。一旦 DAO 组件获得了 SessionFactory Bean 的引用,就可以完成实际的数据库访问。参考文献1Craig Walls,Ryan Breidenbach.李磊,程立译 Spring in ActionM 北京:人民邮电出版社,2006.3
限制150内