我和春天引导和依赖注入一个初学者,我不能让我的周围是构造依赖注入头春天启动。我有类调用ParameterDate
看起来像这样:
public class ParameterDate {
private Date parameterDateUnadjusted;
private Date parameterDateAdjusted;
private Date parameterDateAdded;
private Date parameterDateChanged;
}
我有另一个类,我想用ParameterDate
。通常情况下,我会做基于现场注射液
@Autowired
ParameterDate parameterDate;
何地需要我只是用parameterDate
。
我将如何做到这一点与基于构造器注入?
public MyClazzRequiringParameterDate(ParameterDate parameterDate){
this.parameterDate = parameterDate;
}
由于启动1.4 @Autowired
一直在构造可选。如果你想明确一下,你可以只用标签的@Autowired
构造。
一般来说,你应该有利于构造>二传手>字段注入。直接注射到外地错过DI的角度来看,这也意味着你的测试依赖于Spring来进行依赖注入,而不是仅仅能够嘲笑或存根直接传递给它。 Jurgan奥莱曾表示,他将如果在所有可能的领域取出注射。
@Component
public class ParameterDate {
private Date parameterDate;
@Autowired
public ParameterDate(Date parameterDate){
this.parameterDate = parameterDate;
}
}
以上是构造器注入的例子。
请注意,您可以使用@Autowired注解还对属性的setter方法,由于有setter方法没有什么区别(当然除了它的目的,逻辑包含)和任何其他方法,您可以在几乎任何方法使用@Autowired班级。由于自动装配和组件扫描齐头并进,你应当标注@Component来注解你的类。这告诉Spring是一个bean应该为这个类来创建。