对IOC容器的理解

这两天看了spring关于IOC容器一章内容,看完之后脑袋简直乱成一团,很多专业名词都不懂什么意思,完了之后我还是不懂到底什么是IOC控制反转以及依赖注入!虽然我结合了自己公司的项目去看了一下spring的配置,并且把自己搭建的spring框架错误也解决了,但是我还是不懂,什么是IOC控制反转,什么是依赖注入呢?

随后我在网上找了一些资料,大致的意思我算是给搞清了70%,现在写下自己对这两者的理解,假如还有更新的认识,会继续更新这篇博文。

IOC控制反转:在原来调用者要调用一个对象的时候,调用者就需要给被调用者创建对象,然后用了spring之后,调用者不需要给被调用创建对象了,这些工作全部交给了spring,这个就是IOC控制反转。

依赖注入:何为依赖?spring对依赖的理解是两者的之后的关系,比如A调用B,则A对B有依赖关系。何为注入呢?比如我使用@Repository把一个UserDao设为一个bean,当我在另外一个类需要调用它的时候,我就需要@Autowire去bean容器中查找UserDao类型的bean,假如找到了,则直接注入到调用类里面,被调用者是自动注入进去的;这样的好处是什么呢?下面我用一个例子来说一下:

原来很古老的年代,樵夫需要一个斧头的时候需要自己去打造一个斧头。这就相当于原来我们要调用一个类的时候,我们需要为其创建一个对象才能使用。

到了近代,樵夫需要一个斧头的时候,他需要去特别的工厂挑选自己想要的斧头,他不需要自己做了,有工厂代工为它创建一个斧头。这就是工厂模式,

到了现在,樵夫需要一个斧头的时候,他只需要坐在家里告诉别人我需要一个斧头,就能直接拥有一个斧头,并不需要去工厂里面挑选了,这就是IOC容器的整个意思。调用者需要一个对象的时候,只需要一个注解,就可以获得它需要的那个对象,spring直接去bean容器中为它找到这个对象,让它们之间建立连接。

我所理解大致这些,应该也有理解错误的地方,日后我有更多的理解了,会修改博文的。

时间: 2024-10-08 22:21:21

对IOC容器的理解的相关文章

深入理解DIP、IoC、DI以及IoC容器

摘要 面向对象设计(OOD)有助于我们开发出高性能.易扩展以及易复用的程序.其中,OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC.DI以及Ioc容器等概念.通过本文我们将一起学习这些概念,并理清他们之间微妙的关系. 目录 前言 依赖倒置原则(DIP) 控制反转(IoC) 依赖注入(DI) IoC容器 总结 前言 对于大部分小菜来说,当听到大牛们高谈DIP.IoC.DI以及IoC容器等名词时,有没有瞬间石化的感觉?其实,这些"高大上"的名词,理解起来也并不是那么的

再看IOC, 读深入理解DIP、IoC、DI以及IoC容器

IoC则是一种 软件设计模式,它告诉你应该如何做,来解除相互依赖模块的耦合.控制反转(IoC),它为相互依赖的组件提供抽象,将依赖(低层模块)对象的获得交给第三方(系统)来控制,即依赖对象不在被依赖模块的类中直接通过new来获取.依赖倒置原则,它转换了依赖,高层模块不依赖于低层模块的实现,而低层模块依赖于高层模块定义的接口.通俗的讲,就是高层模块定义接口,低层模块负责实现.控制反转(IoC)一种重要的方式,就是将依赖对象的创建和绑定转移到被依赖对象类的外部来实现.依赖注入(DI),它提供一种机制

深入理解Spring的IOC容器

IOC概述 IOC是Spring容器的内核,AOP.声明式事务等功能都依赖于此功能,它涉及代码解耦.设计模式.代码优化等问题的考量,我们将通过以下三个方面来深入理解IOC: IoC的初步理解 IoC的注入类型 构造器注入:通过调用类的构造函数,将接口实现的类通过构造函数变量传入. 属性注入:通过setter方法完成调用类所需依赖的注入,更加灵活方便. 接口注入:将调用类所有依赖注入的方法抽取到一个接口中,调用类通过实现该接口提供相应的注入方法. IoC的注入方式 Spring最为一个容器,通过配

【来龙去脉系列】深入理解DIP、IoC、DI以及IoC容器

摘要 面向对象设计(OOD)有助于我们开发出高性能.易扩展以及易复用的程序.其中,OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC.DI以及Ioc容器等概念.通过本文我们将一起学习这些概念,并理清他们之间微妙的关系. 目录 前言 依赖倒置原则(DIP) 控制反转(IoC) 依赖注入(DI) IoC容器 总结 前言 对于大部分小菜来说,当听到大牛们高谈DIP.IoC.DI以及IoC容器等名词时,有没有瞬间石化的感觉?其实,这些“高大上”的名词,理解起来也并不是那么的难,关键在

【转】深入理解DIP、IoC、DI以及IoC容器

原文链接:http://www.cnblogs.com/liuhaorain/p/3747470.html 前言 对于大部分小菜来说,当听到大牛们高谈DIP.IoC.DI以及IoC容器等名词时,有没有瞬间石化的感觉?其实,这些“高大上”的名词,理解起来也并不是那么的难,关键在于入门.只要我们入门了,然后循序渐进,假以时日,自然水到渠成. 好吧,我们先初略了解一下这些概念. 依赖倒置原则(DIP):一种软件架构设计的原则(抽象概念). 控制反转(IoC):一种反转流.依赖和接口的方式(DIP的具体

spring IOC/DI容器的理解

参与者:应用程序和spring正向:现在的程序方向,A对象要使用B对象,现在是A里面直接创建B的实例,然后调用.publc class A{ void t1(){ new B().t2();  }}public class B{void t2(); 简而言之,就是程序需要什么.就由程序主动去获取需要的资源,这个方向就是正向.容器是用来创建和装配对象,并管理对象生命周期的.对于应用程序而言,就是被动实例化和被动接受依赖了.装配:在spring容器内拼凑bean叫作装配.装配bean的时候,你是在告

深入理解DIP、IoC、DI以及IoC容器(转)

深入理解DIP.IoC.DI以及IoC容器 摘要 面向对象设计(OOD)有助于我们开发出高性能.易扩展以及易复用的程序.其中,OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC.DI以及Ioc容器等概念.通过本文我们将一起学习这些概念,并理清他们之间微妙的关系. 目录 前言 依赖倒置原则(DIP) 控制反转(IoC) 依赖注入(DI) IoC容器 总结 前言 对于大部分小菜来说,当听到大牛们高谈DIP.IoC.DI以及IoC容器等名词时,有没有瞬间石化的感觉?其实,这些“高大

对依赖倒置原则(DIP)及Ioc、DI、Ioc容器的一些理解

.概述 所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体.简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合,并由此引申出IoC.DI以及Ioc容器等概念. 2.意图 面向过程的开发,上层调用下层,上层依赖于下层,当下层剧烈变动时上层也要跟着变动,这就会导致模块的复用性降低而且大大提高了开发的成本. 面向对象的开发很好的解决了这个问题,一般情况下抽象的变化概率很小,让用户程序依赖于抽象,实现的细节

对依赖倒置原则(DIP)及Ioc、DI、Ioc容器的一些理解(转)

所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体.简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合,并由此引申出IoC.DI以及Ioc容器等概念. 面向过程的开发,上层调用下层,上层依赖于下层,当下层剧烈变动时上层也要跟着变动,这就会导致模块的复用性降低而且大大提高了开发的成本. 面向对象的开发很好的解决了这个问题,一般情况下抽象的变化概率很小,让用户程序依赖于抽象,实现的细节也依赖于抽象.即使