gpt4 book ai didi

java - 构造函数中的 Spring 非必需属性?

转载 作者:搜寻专家 更新时间:2023-11-01 03:19:28 25 4
gpt4 key购买 nike

我想通过构造函数注入(inject)将 bean 列表注入(inject)到 spring bean 中。

@Component
public void MyBean {
@Autowired
public MyBean(List<BeanToInject> beanList) {
...
}
}

但是 BeanToInject 的实现在其他模块中。这些模块可能已关闭。如果在 applicationcontext 中没有 BeanToInject 的实现,spring 会在启动时抛出一个异常,而不是注入(inject)一个空列表。我能做什么?(基于 Setter 和私有(private)属性(property)的 Autowiring 不是我的选择。)

最佳答案

在 Spring 中,Autowired 可以有一个 required 值来定义它在 Autowiring 时是否需要。但这不适用于构造函数。在您的情况下,最好的解决方案是在方法或属性中使用 Autowiring 并应用
@Autowired(required=false)
private List<BeanToInject> beanList;

或者
@Autowired(required=false)
public void setBeanList(List<BeanToInject> beanList);

关于java - 构造函数中的 Spring 非必需属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34892714/

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