Spring IOC.ppt

Spring IOC.ppt

ID:48058624

大小:479.00 KB

页数:11页

时间:2020-01-13

Spring IOC.ppt_第1页
Spring IOC.ppt_第2页
Spring IOC.ppt_第3页
Spring IOC.ppt_第4页
Spring IOC.ppt_第5页
资源描述:

《Spring IOC.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第二章SpringIOC什么是IoC/DIIoC即控制反转,有时候也叫做DI(依赖注入)所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,形象的来说,即由容器动态的将某种依赖关系注入到组件之中。2IOC/DI笔记本电脑与外围存储设备通过预先指定的一个接口(USB)相连,对于笔记本而言,只是将用户指定的数据发送到USB接口,而这些数据何去何从,则由当前接入的USB设备决定。在USB设备加载之前,笔记本不可能预料用户将在USB接口上接入何种设备,只有USB设备接入之后,这种设备之间的依赖关系才开始形成。对应上面关于依赖注入机制的描述,在运行时(系统开机,USB设备加载)由容器(运行在

2、笔记本中的Windows操作系统)将依赖关系(笔记本依赖USB设备进行数据存取)注入到组件中(Windows文件访问组件)。3注意:依赖注入的目标并非为软件系统带来更多的功能,而是为了提升组件重用的概率,并为系统搭建一个灵活、可扩展的平台。4依赖注入的几种实现类型Type1接口注入Type2设值注入Type3构造函数注入5Type1接口注入publicclassClassA{privateInterfaceBclzB;publicObjectdoSomething(InterfaceBb){clzB=b;returnclzB.doIt();}……}在运行期,InterfaceB实例将

3、由容器提供。6Type1型IOC发展较早(有意或无意),在实际中得到了普遍应用,即使在IOC的概念尚未确立时,这样的方法也已经频繁出现在我们的代码中。下面的代码大家应该非常熟悉:publicclassMyServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{……}}7Type2设值注入在各种类型的依赖注入模式中,设值注入模式在实际开发中得到了最广泛的应用(其中很大一部分得力于Sp

4、ring框架的影响)。模拟不同移动设备的存储8Type3构造函数注入publicclassDIByConstructor{privateDataSourcedataSource;privateStringmessage;publicDIByConstructor(DataSourceds,Stringmsg){this.dataSource=ds;this.message=msg;}……}9比较Type2设值注入的优势1.对于习惯了传统JavaBean开发的程序员而言,通过setter方法设定依赖关系显得更加直观,更加自然。2.如果依赖关系(或继承关系)较为复杂,那么Type3模式的

5、构造函数也会相当庞大(我们需要在构造函数中设定所有依赖关系),此时Type2模式往往更为简洁。3.对于某些第三方类库而言,可能要求我们的组件必须提供一个默认的构造函数(如Struts中的Action),此时Type3类型的依赖注入机制就体现出其局限性,难以完成我们期望的功能。10Type3构造子注入的优势:1.“在构造期即创建一个完整、合法的对象”,对于这条Java设计原则,Type3无疑是最好的响应者。2.避免了繁琐的setter方法的编写,所有依赖关系均在构造函数中设定,依赖关系集中呈现,更加易读。3.由于没有setter方法,依赖关系在构造时由容器一次性设定,因此组件在被创建之

6、后即处于相对“不变”的稳定状态,无需担心上层代码在调用过程中执行setter方法对组件依赖关系产生破坏,特别是对于Singleton模式的组件而言,这可能对整个系统产生重大的影响。4.同样,由于关联关系仅在构造函数中表达,只有组件创建者需要关心组件内部的依赖关系。对调用者而言,组件中的依赖关系处于黑盒之中。对上层屏蔽不必要的信息,也为系统的层次清晰性提供了保证。5.通过构造子注入,意味着我们可以在构造函数中决定依赖关系的注入顺序,对于一个大量依赖外部服务的组件而言,依赖关系的获得顺序可能非常重要,比如某个依赖关系注入的先决条件是组件的DataSource及相关资源已经被设定。11

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。