我想通过构造函数注入将 bean 列表注入到 spring bean 中。
@Component
public void MyBean {
@Autowired
public MyBean(List<BeanToInject> beanList) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
但 BeanToInject 的实现在其他模块中。这些模块可能已关闭。如果 applicationcontext 中没有 BeanToInject 的实现,则 spring 在启动时抛出异常,而不是注入空列表。我能做些什么?(基于设置器和私有财产的自动装配对我来说不是一个选择。)
在Spring中,Autowired可以有一个required值来定义它在自动装配时是否需要。但这不适用于构造函数。在您的情况下,最好的解决方案是在方法或属性中使用自动装配并应用
@Autowired(required=false)
private List<BeanToInject> beanList;
或
@Autowired(required=false)
public void setBeanList(List<BeanToInject> beanList);
| 归档时间: |
|
| 查看次数: |
1805 次 |
| 最近记录: |