gpt4 book ai didi

java - Spring 自动接线

转载 作者:行者123 更新时间:2023-11-30 11:54:47 27 4
gpt4 key购买 nike

假设我有两个类 Circle 和 Rectangle,它们实现了一个名为 Shape 的接口(interface)。
我有以下类(class):

public class ObjectFactory {
@Autowired
@Qualifier("circle")
Shape shape;
.......
.......
.......
}

我想做的是删除@Qualifier 并使 Autowiring 取决于某些条件(例如,如果条件为真,则注入(inject)圆,如果条件为假,则注入(inject)矩形)或使布线取决于命名约定。
有没有办法做到这一点 ?

让我解释一下,如果我删除@Qualifier 注释,我将以以下异常结束

org.springframework.beans.factory.NoSuchBeanDefinitionException:
No unique bean of type [com.app.objects.Shape] is defined:
expected single matching bean but found 2: [circle, rectangle]

有没有办法以编程方式处理该异常,以便具有条件相关的 Autowiring ?

最佳答案

您可以使用 SpEL@Resource 中,也许您也可以在 @Qualifier 中使用它。

但通常这样的逻辑可以放在 FactoryBean 中,您可以在其中决定返回哪个实例。

关于java - Spring 自动接线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5421607/

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