spring技术--IOC控制反转课件.ppt
- 文档编号:494731
- 上传时间:2022-10-10
- 格式:PPT
- 页数:42
- 大小:479KB
spring技术--IOC控制反转课件.ppt
《spring技术--IOC控制反转课件.ppt》由会员分享,可在线阅读,更多相关《spring技术--IOC控制反转课件.ppt(42页珍藏版)》请在冰豆网上搜索。
Spring技术,-IOC(控制反转),工厂模式,在面向对象的编程中,工厂模式是一种经常被使用到的模式。
根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作,工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。
X-PersonXy-ChineseXz-American工厂类-PersonFactory,返回的究竟是Xy还是Xz的实例并不重要,因为它们有相同的方法,只不过这些方法的内部实现不同罢了。
publicstaticvoidmain(Stringargs)PersonFactorypf=newPersonFactory();Personp=null;p=pf.getPerson(Chinese);System.out.println(p.sayGoodBye(jack);System.out.println(p.sayHello(jack);,ApplicationContextcontext=newFileSystemXmlApplicationContext(src/org/test/applicationContext.xml);Personp=(Chese)context.getBean(chese);System.out.println(p.sayGoodBye(rose);System.out.println(p.sayHello(rose);,容器,为组件提供运行环境提供底层服务,包括事务,生命周期管理等,常见的容器1Servlet容器:
支持Servlet,JSP等组件2EJB容器:
支持EJB组件3Spring提供的IoC容器为普通的JavaBean提供运行环境,IOC简介,IOC简介,IOC简介,控制反转:
InversionofControl依赖注入:
DependencyInjection,依赖注入(DependencyInjection)和控制反转(InversionofControl)是同一个概念。
具体含义是:
当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。
但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入。
IOC特点,IoC的优点,不必关心组件的创建不必管理组件的生命周期组件容易共享测试非常容易,IOC容器,IOC容器,如何使用IoC?
选择一个IoC容器:
SpringIoC容器告诉Spring如何管理Bean:
编写XML配置文件,Spring提供IoC容器,BeanFactoryApplicationContext,Spring提供IoC容器,Spring提供IoC容器,Spring提供IoC容器,Spring提供IoC容器,定义JavaBeanJavaBean实例的初始化,即通过IOC注入其依赖性基于Spring应用对JavaBean实例的使用IOC容器销毁JavaBean实例,Bean的生命周期,Bean的生命周期,Bean的定义,一般情况下我们都是通过spring的配置xml文件的标记来定义的,Bean的初始化,在spring中初始化一般为两种方法实现1、在配置文档中指定init-method属性2、实现org.springframework.beans.factory.InitializingBean接口如果实现了上述接口,则会在BeanFactory把所有Bean属性设置后,调用afterPropertiesSet()方法,Bean的使用,在spring中Bean的使用分为三种方式一使用BeanWapper二使用BeanFactory三使用ApplicationContext,Bean的销毁,调用DisposableBean接口的destroy()方法调用指定的destroy-method方法,一个例子:
一个人需要一把斧子.模型:
调用者:
人被调用者:
斧子,依赖注入,三种方式实现:
一原始社会:
调用者自己创建被调用者二工业社会:
调用者向工厂要被调用者三共产主义社会:
被调用者主动送上门,依赖注入,依赖注入的方式,构造方法注入设置属性注入,设值注入,设值注入:
指通过setter方法传入被调用者的实例。
publicclassChineseimplementsPersonprivateAxeaxe;publicAxegetAxe()returnaxe;publicvoidsetAxe(Axeaxe)this.axe=axe;publicvoiduseAxe()axe.chop();,设值注入,构造注入,构造注入:
指通过构造函数来完成依赖关系的设定,而不是通过setter方法。
publicclassAmericanimplementsPersonprivateAxeaxe;publicAmerican(Axeaxe)this.axe=axe;publicvoiduseAxe()axe.chop();,构造注入,两种注入方式对比,一设值注入优点:
设值注入与传统的JavaBean的写法更相似,所以更直观,自然。
对于复杂的依赖关系,采用构造注入,会导致构造器过于臃肿,难以阅读在某些属性可选的情况下,多参数的构造器更加笨重,二构造注入优点:
可以在构造器中决定依赖关系的注入顺序对于依赖关系无需变化的bean,构造注入更有用处依赖关系只能在构造器中设定,组件内部的依赖关系完全透明,更符合高内聚的原则,两种注入方式对比,MessageSource实现国际化,ApplicationContext接口扩展了MessageSource接口,因而提供了消息处理的功能(国际化)。
当一个ApplicationContext被加载时,它会自动在context中查找已定义为MessageSource类型的bean。
此bean的名称须为messageSource。
如果找到,那么所有对上述方法的调用将被委托给该bean。
如:
资源文件内容:
mjrg_en_US.propertiesmjrgwelcome.word=welcome:
;time:
1mjrg_zh_CN.propertiesmjrgwelcome.word=欢迎:
;时间:
1显示:
welcome:
;time:
WedDec0514:
04:
15CST2007欢迎:
;时间:
WedDec0514:
05:
16CST2007,native2asciimjrg_zh_CN.propertiesdesc.propertiesmjrgwelcome.word=u6b22u8fce:
;u65f6u95f4:
1,mjrg,Spring提供的处理消息的基本接口,MessageSource实现国际化,StringgetMessage(Stringcode,Objectargs,Stringdefault,Localeloc):
用来从MessageSource获取消息的基本方法。
如果在指定的locale中没有找到消息,则使用默认的消息。
args中的参数将使用标准类库中的MessageFormat来作消息中替换值。
StringgetMessage(Stringcode,Objectargs,Localeloc):
本质上和上一个方法相同,其区别在:
没有指定默认值,如果没找到消息,会抛出一个NoSuchMessageException异常。
StringgetMessage(MessageSourceResolvableresolvable,Localelocale):
上面方法中所使用的属性都封装到一个MessageSourceResolvable实现中,而本方法可以指定MessageSourceResolvable实现。
publicstaticvoidmain(Stringargs)ApplicationContextcontext=newFileSystemXmlApplicationContext(org/yjy/applicationContext.xml);Objectobject=newObjectyjy,(newDate().toString();Stringmassage=context.getMessage(mjrgwelcome.word,object,Locale.US);System.out.println(massage);,Bean的作用域,通过scope指定(默认)Singleton:
仅有一个实例Aa1=context.getBean(“a“);Aa2=context.getBean(“a“);System.out.println(a1=a2);/true!
Prototype:
每次都创建一个新实例Aa1=context.getBean(“a“);Aa2=context.getBean(“a“);System.out.println(a1=a2);/false!
小结,SpringIoC容器带来的好处:
将组件交给Spring容器管理以“组装积木”的方式来装配组件Spring框架的核心设计思想:
针对接口编程使用依赖注入,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- spring 技术 IOC 控制 反转 课件