我想通过构造函数注入将一列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);

10-01 18:29