Spring是概念注入依赖的框架。
DI的目的是什么?它有什么好处?如何实施?
DI的目的是什么?
依赖注入的目的是减少应用程序中的耦合,使其更灵活,更易于测试。
它有什么好处?
对象没有硬编码的依赖关系。如果你需要更改依赖项的实现,则要做的就是注入其他类型的Object。
如何实施?
有多种依赖注入方法。了解这些内容之后,就可以开始研究各种依赖注入框架。
依赖注入将依赖传递给其他对象或框架(依赖注入器)。
依赖注入使测试更加容易。注入可以通过构造函数完成。
SomeClass() 其构造函数如下:
public SomeClass() { myObject = Factory.getObject(); }
问题:如果myObject涉及复杂的任务,例如磁盘访问或网络访问,则很难对其进行单元测试SomeClass()。程序员必须进行模拟,myObject并可能拦截工厂调用。
myObject
SomeClass()
替代解决方案:
public SomeClass (MyClass myObject) { this.myObject = myObject; }
myObject 可以直接通过,这使测试更加容易。
依赖注入基本上是提供对象需要的对象(其依赖),而不是让对象自己构造它们。这是一种非常有用的测试技术,因为它允许对依赖项进行模拟或存根。
可以通过多种方式将依赖项注入到对象中(例如构造函数注入或setter注入)。甚至可以使用专门的依赖项注入框架(例如Spring)来做到这一点,但是肯定不是必需的。你不需要那些框架具有依赖项注入。显式实例化和传递对象(依赖项)与框架注入一样好。