我有一个用spring Component
注释的类,例如:
@Component
public class ImportantClass{
@Autowired
private DependentClassIF otherClass;
//getters setters
@Required
public void setOtherClass(DependentClassIF c){
this.otherClass = c;
}
public interface DependentClassIF {
//methods here
}
@Component
public class DependentClass implements DependentClassIF {
//implementation here
}
我使用autoscan来检测bean,而不是在bean conf文件中声明它们 我得到了
org.springframework.beans.factory.BeanInitializationException: 属性'otherClass'是必需的 bean'ImportantClass'
我的问题如下:
在autoscan中,Spring是否确保注入了所有必需的属性?
如果我删除@Required
它有效,但我不确定我是否理解Spring的行为。
欢迎任何输入。
由于
答案 0 :(得分:3)
@Autowired
将required
设置为true,因此您不需要@Required
您不需要@Requried
基于注释的注入。它与xml配置一起使用,表示必须在xml中设置属性。