我想通过构造函数注入将一列bean注入到spring bean中。
@Component
public void MyBean {
@Autowired
public MyBean(List<BeanToInject> beanList) {
...
}
}
但是BeanToInject的实现在其他模块中。这些模块可能已关闭。如果在applicationcontext中没有BeanToInject的实现,则spring在启动时引发异常,而不是注入空列表。我能做什么?
(基于固定和私有财产的自动装配对我来说不是一个选择。)
最佳答案
在Spring中,自动装配时可以具有必需的值来定义是否需要。但这不适用于构造函数。对于您而言,最好的解决方案是在方法或属性中使用自动装配并应用@Autowired(required=false)private List<BeanToInject> beanList;
或@Autowired(required=false)public void setBeanList(List<BeanToInject> beanList);