gpt4 book ai didi

java - 如果 Spring 中没有 bean,是否有一种简单的方法来 Autowiring 空集合?

转载 作者:IT老高 更新时间:2023-10-28 13:45:58 25 4
gpt4 key购买 nike

如果我有 @Autowired List<SomeBeanClass> beans;没有SomeBeanClass 的 bean ,我得到:

No matching bean of type [SomeBeanClass] found for dependency [collection of SomeBeanClass]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

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

如果没有 bean,是否有一种简单的方法(一个衬里)来 Autowiring 空集合?

最佳答案

Spring 4 和 Java 8 有几个选项:

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

您也可以使用java.util.Optional使用构造函数:

@Autowired
public MyClass(Optional<List<Foo>> opFoo) {
this.foo = opFoo.orElseGet(ArrayList::new);
}

您还应该能够使用 Optional<List<Foo>> opFoo; Autowiring a 字段,但我还没用过。

关于java - 如果 Spring 中没有 bean,是否有一种简单的方法来 Autowiring 空集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19299114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com