简单来说,依赖情况如下:
可以理解为有A和B类,在A类的improtentMethod()方法中调用(使用)了B类的方法,可以称做A类依赖与B类。
public class A {
public void improtentMethod() {
B b = new B(); //声明一个B的实例引用
b.usefuMethod();
}
}
如果需要使用B类中的方法,我们可以通过new去声明一个B的实例引用(前提:B是一个具体的类)。
依赖注入是这样处理此类情景的:接管对象的创建工作,并将该对象的引用注入需要该对象的组件。比如依赖注入框架会分别创建对象A和对象B,将对象B注入到对象A中。
public class A {
private B b;
public void improtentMethod() {
//通过这个方法依赖注入,我们就不需要再去声明B的实例
// B b = new B(); //声明一个B的实例引用
b.usefuMethod();
}
public void setB(B b) {
this.b = b;
}
}
修改后的类A增加了一个setB()的方法,该方法会被框架调用,以注入一个B的实例。由于B对象依赖由依赖注入生成了B的实例,所以类A中不需要在improtentMethod()方法中去创建一个B的实例。