第1章Spring框架概述课件.ppt

上传人(卖家):晟晟文业 文档编号:4890199 上传时间:2023-01-22 格式:PPT 页数:37 大小:1.54MB
下载 相关 举报
第1章Spring框架概述课件.ppt_第1页
第1页 / 共37页
第1章Spring框架概述课件.ppt_第2页
第2页 / 共37页
第1章Spring框架概述课件.ppt_第3页
第3页 / 共37页
第1章Spring框架概述课件.ppt_第4页
第4页 / 共37页
第1章Spring框架概述课件.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、Spring框架高级开发工程师培训框架高级开发工程师培训中程在线(北京)内部教程注意保密第1章 Spring 框架概述学习内容学习内容 Spring 框架的历史 Spring 框架是介绍 第一个Spring实例 IoC和DI概念 DI的类型Spring Spring 框架的历史框架的历史 2002年11月一本名为Expert One-on-One J2EE Design and Development 2004年7月Rod Johnson又出版了另外一本名为Expert One on one J2EE Development Without EJBSpring Spring 框架是什么?框架是

2、什么?Spring Spring 框架给我们带来什么?框架给我们带来什么?IoCIoC和和DIDI,Spring通过IoC(控制反转)和DI(依赖注入)真正实现了面向接口的编程,使我们能够构建松耦合的J2EE企业级系统。灵活可选择灵活可选择,Spring不是一个强制性框架,你可以使用它的一部分也可以使用的全部。你也可以只使用它的AOP部分管理应用系统的事务,也可以只使用它MVC框架。Spring Web MVC Spring Web MVC 框架框架,Spring 提供的Web MVC 框架是一个非常优秀的Web MVC 框架,它即能够使用传统的JSP、HTML等作为视图技术,也可以使用PDF

3、和Excel作为视图技术,这样我们就可以实现Web报表的功能。Spring Spring 框架给我们带来什么?框架给我们带来什么?测试驱动测试驱动,Spring测试驱动模式的开发,什么是测试驱动呢?简单的说测试驱动就是,在编写某个被测试程序之前先编写测试程序,用测试程序测试目标程序,直到最后测试用例全部通过为止。这种编程方式将成为主流。灵活的事务支持灵活的事务支持,Spring提供了安全和灵活的事务支持,它即有编程型事务的支持又有声明型事务的支持。这里的声明型事务的支持是借助AOP实现的。消除各式各样的配置文件消除各式各样的配置文件,Spring提供了统一格式的配置文件,消除了一个框架一种形式

4、的配置文件问题,如Spring在整合Hibernate后就不再使用Hibernate的配置文件(Hibenate.cfg.xml或这是Hibernate.properties)SpringSpring的第一次亲密接触的第一次亲密接触 准备工作 建立工程 程序描述 测试程序 小结准备工作准备工作 到spring官方站点下载spring 框架 我们会看到两个压缩文件:spring-framework-2.x.zip和spring-framework-2.x-with-dependencies.zip建立工程建立工程 我们要在Eclipse中为第一个程序创建一个工程,这个工程名“FirstSprin

5、g”,它是一个普通的Java工程。添加Spring框架类库。程序描述程序描述 HelloWorld为例,现在我们要做一个Hello类,有一个方法是sayHello方法的返回值是一个字符串测试程序测试程序 没有使用Spring的JUnit4单元测试 有使用Spring的JUnit4单元测试没有使用没有使用SpringSpring的的JUnit4JUnit4单元测试单元测试使用使用SpringSpring的的JUnit4JUnit4单元测试单元测试applicationContext.xmlapplicationContext.xml小结小结 测试程序中将获得Hello实例的方式由原来的hello

6、=new Hello()hello=new Hello()的方法修改成为hello=hello=(Hello)bf.getBean(“myhello”)(Hello)bf.getBean(“myhello”)。Spring使用一个BeanFactory类获得Hello实例,BeanFactory类的子类ClassPathXmlApplicationContextClassPathXmlApplicationContext可以使Spring以类路径的方式访问它的applicationContext.xml文件,获得hello这个Bean注册信息,创建这个Bean的实例。什么什么IoCIoC和和D

7、IDI DI概念 IoC概念案例回顾案例回顾 设计一个接口Hello,它有一个sayHello方法这个代码如清单1.7所示。Hello接口的两个实现类即EnglishHello和ChineseHello。EnglishHello的sayHello方法是实现英文问候(“Hello World”)代码如清单1.8所示,ChineseHello的sayHello方法是实现中文问候(“世界你好”)代码如清单1.9所示。测试测试 为了测试EnglishHello和ChineseHello两个实现类。如果先测试的是EnglishHello这个类,修改Bean注册applicationContext.xml

8、文件,class的类型是com.tongking.spring.EnglishHello。在我们的JUnit单元测试程序HelloTest中我们不需要修改什么,如果我们的测试需求变了改成要测试ChineseHello这个类,我们只需要将applicationContext.xml文件中的Bean依赖关系修改成ChineseHello就可以了。案例总结案例总结 原本HelloTest测试类依赖于EnglishHello对象如图1.25,现在依赖于ChineseHello对象了如图1.26所示。什么是依赖关系?在OOAD的理论中对象之间有一种关系叫依赖关系。依赖关系就是一个对象B的变化会引起外一个

9、对象A的变化,我们就说A对象依赖于B对象(A-B)。如图1.27所示。依赖关系在OOAD里是普遍存在的。实例化对象方式实例化对象方式 SpringSpring的方式和的方式和newnew方式。方式。Spring的方式创建一个Bean实例,可以轻松的改变对象之间的依赖关系 new Hello()方式不能轻松的修改依赖关系,我们必须修改测试代码由hello=new EnglishHello()改为hello=new ChineseHello()。new的方式建立依赖关系是在编程时期建立的,而Spring方式是在运行期由Spring的BeanFactory从文件applicationContext.

10、xml读取依赖关系的,并动态实例化的。或者说依赖关系动态的由BeanFactory读取applicationContext.xml文件注入进来的这就是DI(Dependency Injection),我们翻译为“依赖注入”。接下来我们介绍什么是DI(“依赖注入”)。DIDI概念概念 DI是Dependency Injection缩写,我们翻译为“依赖注入”。简单的说,两个对象A-B(或者组件)依赖关系的建立,最好不要在编程时候确定下来,即不要通过new的方式确定依赖关系,这种方式会使系统失去可扩展性、可复用性等特点。Spring框架是多个Bean通过DI方式建立依赖关系,建立复杂的依赖关系网,

11、如图1.29所示。IoCIoC概念概念 IoC是Inversion of Control,翻译过来就是“控制反转”。IoC就是:原来由A来决定创建B还是创建C的权力发生了反转,变成了由框架决定创建B还是创建C,再由框架把B或C的实例对象赋予给A。这就是IoC“控制反转”。没有控制反转情况 控制反转情况 “控制反转”是符合“好莱坞原则”的,什么是“好莱坞原则”呢?就是“Dont call me,Ill call you.”,翻译过来“如果需要我会给你打电话,你不要给我打电话”。我给它改了一下叫做“中国式找工作原则”。总而言之,“控制反转”就是将控制权倒置,从而使软件系统发生了具有可扩展性、可复用

12、性等特性的飞跃,这个设计原则在OOAD中非常有用。DI“依赖注入”是IoC“控制反转”的一种特例。Spring是一个IoC框架,更准确的说是一个DI框架DIDI的类型的类型 Spring提供两种主要的DI方式:Setter(设值)注入方式 Constructor(构造器)注入方式 为了介绍这两种注入方式,我们先对我们上一节的Hello示例进行改造。为接口Hello添加另外一个实现类DbHello,DbHello类又依赖于另外的一个接口DictionaryDAO,类DictionaryDAOImp是接口DictionaryDAO实现类。设值注入方式设值注入方式 如果我们采用设值注入方式,改造后的类图如图1.32所示。构造器注入方式构造器注入方式 如果我们采用构造器依赖注入方式,那么改造后的类图如图1.33所示。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第1章Spring框架概述课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|