依赖注入(Dependency Injection,简称 DI)是一种设计模式,通过将对象依赖关系定义在外部而不是在对象内部来提高代码的灵活性和可重用性。依赖注入可以通过构造器注入、SETTER 方法注入和接口注入等方式实现。而构造器注入是其中的一种常用方式。
依赖注入和构造器注入的主要区别在于注入时间和方式。
注入时间
依赖注入(DI)是在实例化对象之后再注入对象的依赖关系,因此称之为“后置注入”。而构造器注入则是在实例化对象之前注入对象的依赖关系,因此称之为“先置注入”。
注入方式
依赖注入(DI)是通过将对象的依赖关系定义在外部的 bean 定义文件或使用注解实现来实现的,因此不需要修改源代码。而构造器注入则需要在类的构造函数中定义需要注入的依赖项。