1、概念
控制反转:控制反转可以简单的理解为将合作对象(成员对象)的引用或者依赖关系的管理转交给框架或者IoC
容器来管理。控制反转的实现使得代码的低耦合也增加了软件测试的便捷性,因为它使得对象之间的耦合关系变低。
IoC:'依赖倒置原理':IoC可以认为是实现了控制反转的一种方式。同时也可以通过构造函数,setter设置器, 工厂方法等来实现控制反转。
public class BaseServiceImpl { private BaseDao baseDao = BeanFactory.getBeanInstance(BaseDao.class); public BaseServiceImpl() { System.out.println(baseDao.getClass()); } public void setBaseDao(BaseDao baseDao) { this.baseDao = baseDao; } }
上述BaseServiceImpl所依赖的对象baseDao是由工厂来初始化,将控制权移交给工厂,实现了对工厂的依赖,及注入依赖。Spring提供了IoC容器来代替上面工厂的作用,因此Spring框架也实现了控制反转,注入依赖的功能。