Spring框架概述

上传人:jiups****uk12 文档编号:45255610 上传时间:2018-06-15 格式:PPT 页数:45 大小:347KB
返回 下载 相关 举报
Spring框架概述_第1页
第1页 / 共45页
Spring框架概述_第2页
第2页 / 共45页
Spring框架概述_第3页
第3页 / 共45页
Spring框架概述_第4页
第4页 / 共45页
Spring框架概述_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《Spring框架概述》由会员分享,可在线阅读,更多相关《Spring框架概述(45页珍藏版)》请在金锄头文库上搜索。

1、主讲教师:张国平E-mail:第 1章 Spring框架概述教学环节 课时分配: 理论课:72课时 实验课:34课时 考试性质:考试(待定) 成绩评定: 考试成绩:平时成绩(包括:出勤、作业、实验 情况、学习态度)*30%+期末考试成绩*70%参考书 1罗时飞,精通Spring,电子工业 出版社,2005年。 2 黄睿,Spring深度整合指南,电 子工业出版社,2007年。 学习目标 理解框架的含义 理解引入框架技术的好处 理解为什么要进行框架开发 了解常见的Java框架 了解Spring框架的历史 了解Spring框架的优点 了解什么是控制反转(IOC) 开发工具和相应jar包的选择 能够

2、快速利用Spring开发一个小应用程序教学重难点重点 框架的含义 框架开发的必要性 Spring框架的优点 控制反转的含义 利用Spring开发一个小应用程序 难点 控制反转的含义 利用Spring开发一个小应用程序回顾 一、什么是框架框架,即framework,其实就是某种应用的半 成品,就是一组组件,供你选用完成你自己的系 统,简单说就是使用别人搭好的舞台,你来做表演 。 而且,框架一般是成熟的,不断升级的软件。框架的概念最早起源于Smalltalk环境,其中最 著名的框架是Smalltalk 80的用户界面框架MVC,随 着用户界面框架Interviews和ET+的开发和发布, 框架研究

3、越来越受研究人员的重视 ,虽然框架研究最初起源于用户界面领域,但它还被成功地应用到 其它领域中,如操作系统(Russo 90)等。框架目前还没有统一的定义,其中Ralph Johnson所给出的定义基本上为大多数研究员所接 受:一个框架是一个可复用设计,它是由一组抽象 类及其实例间协作关系来表达的。所以说,框架着 重于设计复用。 二、为什么要用框架?因为软件系统发展到今天已经很复杂了,特别是服务器 端软件,设计到的知识,内容,问题太多。在某些方面使用 别人成熟的框架,就相当于让别人帮你完成一些基础工作, 你只需要集中精力完成系统的业务逻辑设计。而且框架一般 是成熟,稳健的,它可以处理系统很多细

4、节问题,比如,事 务处理,安全性,数据流控制等问题。另外,框架一般都经 过很多人使用,所以结构很好,扩展性也很好,而且它是不 断升级的,可以直接享受别人升级代码带来的好处。框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层。 软件为什么要分层?为了实现“高内聚,低耦合”。把问题划分开来各 个解决,易于控制,易于延展,易于分配资源。 三、为什么要进行框架开发框架最大的好处就是重用。面向对象系统获得 的最大的复用方式就是框架,一个大的应用系统往 往可能由多层互相协作的框架组成。由于框架能重用代码,因此从一已有的构件库中 建立应用变得非常容易,因为构件都采用框架统一 的接口,从而使构件

5、间的通信简单。采用框架技术开发的主要特点包括:1、建立更加开放的系统2、重用代码大大增加3、软件生产效率和质量得到了提高 4、软件设计人员专注对领域的了解,使需求分析 更充分 5、存储了经验,允许经验丰富的人员去设计框架 ,而不必限于低层编程 6、允许采用快速原型技术 7、有利于在一个项目内多人协同工作 四、常见的Java框架 1、WAF(Web Application FrameWork):主要应 用方面:EJB层,WEB层也有,但比较弱 2、Struts:主要应用方面:WEB层 3、COCOON:主要应用方面:WEB层 4、ECHO:主要应用方面:WEB层 5、JATO:主要应用方面:WE

6、B层 6、TCF:主要应用方面:JAVA GUI 7、Spring:主要应用于业务逻辑层,提供了与多数 表示层技术/框架的无缝集成。 五Spring是什么? Spring是一个开源框架,它由Rod Johnson创建。 它是为了解决企业应用开发的复杂性而创建的。 Spring使用基本的JavaBean来完成以前只可能由 EJB完成的事情。然而,Spring的用途不仅限于服务器 端的开发。从简单性、可测试性和松耦合的角度而言, 任何Java应用都可以从Spring中受益。 目的:解决企业应用开发的复杂性。 功能:使用基本的JavaBean代替EJB,并提供了更多 的企业应用功能 范围:任何Jav

7、a应用 六Spring的历史 Spring的基础架构起源于2000年早期,它是Rod Johnson在一些成功的商业项目中构建的基础设施。 在2002后期, Rod Johnson发布了Expert One-on-One J2EE Design and Develoopment一 书,并随书提供了一个初步的开发框架实现- interface21开发包, interface21就是书中阐述的思 想的具体实现。后来, Rod Johnson在interface21 开发包的基础之上,进行了进一步的改造和扩充,使 其发展为一个更加开放、清晰、全面、高效的开发框 架-Spring。 2003年2月Sp

8、ring框架正式成为一个开源项目,并 发布于SourceForge中。 七Spring的使命 (1)提供了一种管理对象的方法,可以把中间层对象 有效地组织起来,一个完美的框架“黏合剂”。 (2)有利于面向接口编程习惯的养成 。 (3)非侵入性,应用程序对Spring API的依赖可以减 至最小限度。 (4)写出易于测试的代码。 (5)采用了分层结构,可以增量引入到项目中。 八Spring受到的批判 (1)Spring不是一个“标准”Spring不是J2EE规范的一部分,没有通过 JCP(Java Community Process)的审核认可。批判来源 于EJB的支持者,他们认为EJB是一个标

9、准,是J2EE规 范的一部分。当然标准最主要的目的是希望在应用服务 器之间是可移植的,可是EJB的移植却并不轻松,不同应 用服务器的EJB部署描述文件总是有着差异。而且EJB开 发的类完全依赖于EJB容器。而Spring对其管理的Bean 没有任何形式的侵入,这样的Bean是普通Java对象 (POJO),那么它不遵循Java标准,可以到处移植。 (2)Spring是“超重量级”的 Spring涉及的内容确实很多(例如:提供了对 JDBC、ORM、远程访问等的支持),但其本质还是 Java技术的庞大。Spring只是为这些技术提供更好的 使用方案而已。开发者可以选择只需要使用的部分。传统的J2

10、EE系统开发技术在现今应用开发中问题传统J2EE应用开发效率低,应用服务器厂商对 各种技术的支持并没有真正统一,导致J2EE应用没 有真正实现 write once及run anywhere承诺,Spring 作为开源的中间件,独立于各种应用服务器,Spring致力于J2EE应用的各层的解决方案,而 不是仅仅专注于某一层方案,可以说Spring是企业 应用开发的“一站式”选择,并贯穿表现层,业务层 及持久层,然而Spring并没有取代那些已有的框 架,而是与它们无缝地整合。利用Spring IoC和AOP实现J2EE平台中的EJB主要技术Spring框架是一个轻量级的控制反转技术和面向切面 编

11、程技术的容器框架。 (1)标准J2EE技术平台中的主要的核心思想 p 容器实现对象的生命周期管理 p 分离应用逻辑组件和通用服务组件 p 应用服务器容器可以管理各个组件的事务并可以 跨组件的隔离(如EJB CMT特性)Spring又是如何实现的呢?(2)利用Spring IoC实现J2EE平台中所倡导的由容器实现 对象的生命周期管理 p Spring IoC,借助于依赖注入设计模式,使得开 发者不再需要自己来管理对象自身的生命周期及 其关系,而且能够改善开发者对J2EE中的各种模 式的应用。 p 由于Spring IoC所要求的JavaBean为普通的POJO ,而不象EJB那样的必须实现某个

12、接口的要求。从而达到轻量级的实现目标(3)利用Spring AOP实现J2EE平台中所倡导的分离应用逻 辑组件和通用服务组件 p 借助Spring AOP,能够达到类似“容器”提供基 础功能服务的目标。 p 借助于Spring AOP中所提供的拦截器技术,开发 者能够实现以声明的方式使用企业级服务-比 如安全服务、事务服务等。(4)Spring IoC和 Spring AOP组合在一起形成了Spring p 这样的一个有机整合,使得构建轻量级的J2EE平台的 企业级的系统架构成为可能,而且事实证明,非常有 效。 p 没有Spring IoC的Spring AOP是不完善的,没有 Spring

13、AOP的Spring IoC是不健壮的。 Spring =IoC + AOP使用Spring的应用系统开发的优点:“解耦”和“脱离容器 ”(1)Spring框架的核心思想我们可以用两个字来描述,那就是 “解耦”。具体体现如下: p应用系统的核心类代码之间的解耦。p应用系统与其所在的底层应用服务器平台的解耦。解耦的好处:尽量形成一种松耦合的结构,使得应用系统有更多的灵活性和可扩展性。(2)在Spring中是如何实现上面的两种形式的解耦p应用系统内部的类之间的解耦主要通过一种称为控制反转 (IOC)的技术来实现。p应用系统与底层应用服务器平台的解耦借助AOP技术来实现 ,Spring内置的AOP支

14、持使得一些本来必须由容器支持的功 能,比如事务控制可以脱离开J2EE应用服务器容器而能够 在容器外的普通Java虚拟机环境中运行。 (3)使用Spring后养成“面向接口编程实现”的良好的编程习 惯 q 利用其对象“延时依赖注入”思想组装代码 一方面减少了在使用这些对象的客户中的大量代 码 另一方面也提高系统扩展性,灵活性,实现插件 式编程。 q 利用AOP思想达到集中处理应用系统中的业务逻辑并分 离附加技术支持和实现的代码,从而减少重复代码, 构建出简洁和优雅解决方案。 q 利用其对其它框架的支持比对Hibernate的 SessionFactory、事务管理的封装,更简洁地应用和 集成Hi

15、bernate等O/R Mapping框架和其它的框架技术 (如Struts等)。(4)如果不使用Spring,将额外需要编程实现更多代码同时这些代码跟Spring提供的功能相比效果又怎样?比如事务处理、JDBC数据库访问等实现。可能会出现“花了精力但 又效果不好”局面九、Spring 中的IoC(1)IoC = Inversion of Control(将原来由程序控制“对象之间的关系”转由外部容器来实现控制)能够减少对象的请求者对服务提 供者的特定实现逻辑的依赖。应用系统中的各个组件类不需要 去查找或是实例化它们所依赖的 其它的组件类p IoC:用白话来讲,就是由容器来控制程序中的各个 类

16、之间的关系,而非传统实现中直接在代码中由程 序代码直接操控。 p 这也就是所谓“控制反转”的概念所在:控制权由 应用代码中转到了外部容器,控制权的转移,是所 谓反转。 (2)IOC 是一种使应用程序逻辑外在化的设计模式p 因为提供服务的组件是被“注入”的而不是被“直接 写入”到请求者(客户端)的代码中p 这样将能够大大地减少对象的请求者对服务提供者的特定实现逻辑的依赖-因为我们已经将依赖的具体 “定位信息”从请求者中分离出来。到此,我们需要反思我们传统的OOP编程 实现中的“类之间的 依赖和关联”的实现(3)我们在应用IoC进行系统开发的基本要求q 在代码中不直接创建目标对象,但是描述创建它们的 方式。q 在代码中不直接与服务对象连接,但在配置文件中描 述哪一

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号