Spring面试--IOC的理解

  1. 容器概念: IOC容器实际就是个map(Key,value),里面存的是各种对象(xml里面配置的对象或者是通过注解修饰的对象)在项目启动的时候会读取配置文件里面的bean节点,根据权限类名用反射创建对象放到map里面,扫描到注解的类也是通过反射创建对象放到map里面。
  2. 控制反转: 没有引入IOC容器之前,对象A依赖于对象B,,那么A在初始化或者运行到某一点的时候,自己必须主动去创建B或使用已经存在的对象B,控制权掌握在对象A自己的手上。   在引入IOC之后,对象A和对象B之间失去了联系,对象A运行到需要对象B的时候,IOC会主动创建一个对象B注入到对象A需要的地方。可以看到对象A依赖对象B的控制权交给了IOC容器,从主动变为了被动,这就是控制反转的由来。
  3. 控制反转最大的好处是解耦合全部对象的控制权交给了第三方IOC容器,所以IOC是整个系统的核心,它类似一种粘合剂的作用。使得对象之间失去了彼此之间的联系。
  4. 依赖注入:IOC里面存在各种对象之后,在代码中我们用到里面的对象时,再通过依赖注入(@autowired、@resource等注解,xml里面bean节点的ref属性)给对象里面的属性赋值。
  5. 依赖注入是实现控制反转的方法,在IOC运行期间,动态的将对象注入。

 

你可能感兴趣的:(spring,面试,java)