如果Spring中没有bean,是否有一种简单的方法可以自动assembly空集合?
如果我有@Autowired List beans;
并且没有SomeBeanClass
bean,我得到:
没有匹配[SomeBeanClass]类型的匹配bean用于依赖[SomeBeanClass的集合]:期望至少有一个bean有资格作为此依赖项的autowire候选者。 依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)}
如果我添加(required=false)
,我会为beans
获取null
。 但它看起来像容易出错的解决方案需要空检查。
如果没有豆子存在,是否有一种简单的方法(一个class轮)自动assembly空集合?
如果我添加
(required=false)
,我会为beans
获取null
。
该字段是否显式设置为null或者根本没有设置它? 尝试添加初始化表达式
@Autowired List beans = new ArrayList<>();
Spring 4和Java 8有几个选项:
@Autowired(required=false) private List providers = new ArrayList<>();
您还可以将java.util.Optional
与构造函数一起使用:
@Autowired public MyClass(Optional> opFoo) { this.foo = opFoo.orElseGet(ArrayList::new); }
您还应该能够使用Optional
自动assembly一个字段> opFoo;
Optional
,但我还没用过。 > opFoo;