注入 Spring - 整明白 Ioc 控制反转
注入 Spring - 整明白 Ioc 控制反转
当编写一个复杂的 Java 应用程序时, 应用程序类应该尽可能的独立于其他的 Java 类来增加这些类可重用可能性, 当进行单元测试时, 可以使它们独立于其他类进行测试. 依赖注入有助于将这些类粘合在一起,并且在同一时间让它们保持独立。
依赖注入 Ioc
Spring 框架的核心功能之一就是通过依赖注入的方式来管理 Bean 之间的依赖关系.
我以一个 DI 依赖注入的实例来讲解神马是 Ioc.
这有点抽象, 我帮大家简化一下来彻底理解 Ioc, 简单类一二的依赖关系如下:
代码如下:
public class A {
private B b;
public A() {
b = new B();
}
}
上述代码中, 不仅要关心真正需要关心的 A, 同时避免不了去关注 B 的构造.
实际上开发者不关心也不想知道 B 到底做了什么事情, Ioc 简化了开发的流程, 使依赖关系反转.
代码如下:
public class A {
private B b;
public A(B b) {
this.b = b;
}
}
A 不应该担心 B 的实现. B 将会独立实现,并且在 A 实例化的时候将提供给 A, 整个过程是由 Spring 框架的控制.
控制由开发者反转为 Spring, 这就是 Ioc.