什么是控制反转(IOC)?什么是依赖注入?
Spring 44
控制反转
- 控制反转是应用于软件工程领域中的,在运行时被装配器对象 来绑定耦合对象的一种编程技巧,对象之间耦合关系在编译时 通常是未知的。在传统的编程方式中,业务逻辑的流程是由应 用程序中的早已被设定好关联关系的对象来决定的。在使用控
制反转的情况下,业务逻辑的流程是由对象关系图来决定的, 该对象关系图由装配器负责实例化,这种实现方式还可以将对 象之间的关联关系的定义抽象化。而绑定的过程是通过“依赖 注入”实现的。 - 控制反转是一种以给予应用程序中目标组件更多控制为目的设 计范式,并在我们的实际工作中起到了有效的作用。
- 依赖注入是在编译阶段尚未知所需的功能是来自哪个的类的情 况下,将其他对象所依赖的功能对象实例化的模式。这就需要 一种机制用来激活相应的组件以提供特定的功能,所以依赖注 入是控制反转的基础。否则如果在组件不受框架控制的情况 下,框架又怎么知道要创建哪个组件?
依赖注入
在 Java 中依然注入有以下三种实现方式:
1. 构造器注入
2. Setter 方法注入 3. 接口注入