我们可以像下面给出的代码那样,将抽象类和接口属性的依赖项注入到所需的类中吗?
abstract class Parent { }
interface Heritage { }
class Child
{
@Autowired private Parent parent;
@Autowired private Heritage heritage;
}
答案 0 :(得分:0)
使用“属性注入”(又称“ Setter注入”)或字段注入来防止依赖项的注入。这些做法导致了Temporal Coupling。相反,您应该只使用构造函数注入作为DI的实践,因为:
@Autowired
)标记该类的需求。使用构造函数注入时,该类将如下所示:
class Child
{
private Parent parent;
private Heritage heritage;
public Child(Parent parent, Heritage heritage) {
if (parent == null) throw new NullErrorException();
if (heritage == null) throw new NullErrorException();
this.parent = parent;
this.heritage = heritage;
}
}