Java 如果春季没有bean,有没有一种简单的方法可以自动连接空集合?

Java 如果春季没有bean,有没有一种简单的方法可以自动连接空集合?,java,spring,Java,Spring,如果我有@自动连线列表bean和没有SomeBeanClass的bean,我得到: 未找到依赖项[SomeBeanClass集合]类型为[SomeBeanClass]的匹配bean:至少需要1个符合此依赖项autowire候选项条件的bean。依赖项注释:{@org.springframework.beans.factory.annotation.Autowired(required=true)} 如果我添加(required=false),我会得到bean的null。但它看起来像是需要空检查的

如果我有
@自动连线列表bean和没有
SomeBeanClass
的bean,我得到:

未找到依赖项[SomeBeanClass集合]类型为[SomeBeanClass]的匹配bean:至少需要1个符合此依赖项autowire候选项条件的bean。依赖项注释:{@org.springframework.beans.factory.annotation.Autowired(required=true)}

如果我添加
(required=false)
,我会得到
bean的
null
。但它看起来像是需要空检查的容易出错的解决方案

如果没有bean,是否有一种简单的方法(一行)自动连接空集合?

如果我添加
(required=false)
,我会得到
bean的
null

字段是显式设置为null还是根本没有设置?尝试添加初始值设定项表达式

@Autowired(required=false)List bean=new ArrayList();

Spring 4和Java 8有几个选项:

@Autowired(required=false)
private List<Foo> providers = new ArrayList<>();

您还应该能够使用
可选opFoo自动关联a字段,但我还没有使用它。

这不起作用。Spring仍然会抱怨它做不到自己的事情。除非你把
required=false
@SotiriosDelimanolis放在我所指的情况下,对不起,我没有说得很清楚。最好是分配
集合。空的\u列表
(或者
不可变列表。of()
,如果你使用番石榴)。我如何使用构造函数注入来做到这一点?
@Autowired
public MyClass(Optional<List<Foo>> opFoo) {
    this.foo = opFoo.orElseGet(ArrayList::new);
}