IoC(Inversion of Control)的理念就是:让别人为你服务。原来是需要什么东西自己去拿,现在是需要什么东西让别人送过来。
被注入对象通过以下三种方式来通知IoC Service Provider为其提供相应的被依赖对象:
- 构造方法注入
- setter方法注入
- 接口注入
- 构造方法注入
就是被注入对象可以通过在其构造方法中声明依赖对象的参数列表,让IoC容器知道它需要哪些依赖对象。
- setter方法注入
被注入对象只要为其依赖对象所对应的属性添加setter方法,就可以通过setter方法将相应的依赖对象设置到被注入对象中。
- 接口注入
被注入对象如果想要Ioc容器为其注入依赖对象,就必须实现某个接口,这个接口提供一个方法,用来为其注入依赖对象。Ioc容器最终通过这些接口来了解应该为被注入对象注入什么依赖对象。
- 三种注入方式比较
构造方法注入和setter方法注入因为其侵入性较弱,且易于理解和使用,所以是现在使用最多的注入方式;而接口注入不流行了。