gpt4 book ai didi

java - 通过 bean 名称编写可选的 bean 依赖注入(inject)

转载 作者:行者123 更新时间:2023-11-30 01:55:45 28 4
gpt4 key购买 nike

我读过一些关于可选bean依赖项的文章,通常建议使用java可选类,或spring ObjectProvider类。

这些确实有效,但我的情况有点不同。如果在我的上下文中存在多个相同类型的 bean,并且用 @Qualifier 进行注释,并且我不知道其中是否有我需要的 bean,该怎么办?我需要一个有具体名称的。

@ComponentScan(basePackages = "my.package")
public class MyClass {

private final MyOptionalBean myOptionalBean;

MyClass(ObjectProvider<MyOptionalBean> myOptionalBeanObjectProvider) {
this.myOptionalBean = myOptionalBeanObjectProvider.getIfAvailable(() -> null);
}

}

上面的例子有效。但现在想象一下,在我的上下文中注册了多个 MyOptionalBean bean,这些 bean 已命名。如何编写与上面类似的代码,但告诉 spring 按特定实例的名称查找?

最佳答案

您可以组合使用@Autowired(required = false)@Qualifier:

MyClass(@Autowired(required = false) @Qualifier("foo") MyOptionalBean myBean)
{
// myBean will be null if no bean with the qualifier exists
}

关于java - 通过 bean 名称编写可选的 bean 依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54592747/

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