控制反转/反向控制,英文全称“Inversion of Control”,简称IoC。
依赖注入,英文全称“Dependency Injection”,简称DI。
据说是Martin Fowler对控制反转的原理进行了深入的探索后,为控制反转起了个新的名字叫“依赖注入”。也就是说,这两个术语讲的是同一个事物。
“实现必须依赖抽象,而不是抽象依赖实现”。
Spring IOC是一种设计模式,使对象不用显示的创建依赖对象,而是将对象创建的过程交给Spring的IOC容器去管理,通过依赖注入的方式,来实现IOC;
依赖注入的方式有两种:
1、设值注入:即通过XML中配置bean的依赖类,通过层级property属性,来配置依赖关系,然后Spring通过setter方法,来实现依赖类的注入;
<property name="xxx" ref="xxx"></property>
2、构造器注入:方法同设值注入,不过具体实现的方法是通过显示的创造一个构造方法,构造方法的参数名称要与XML中配置的name名称一致,XML配置的标签为constructor-arg
<constructor-arg name="xxx" ref="xxx"></constructor-arg>