假设我有两个类Circle和Rectangle,它们实现了一个名为Shape的接口。
我有下面的类:
public class ObjectFactory {
@Autowired
@Qualifier("circle")
Shape shape;
.......
.......
.......
}我想要做的是删除@Qualifier,并使自动装配依赖于某个条件(例如,如果条件为真,则注入Circle,如果条件为假,则注入矩形)或使连接依赖于命名约定。
有没有办法做到这一点?
让我解释一下,如果我删除@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]有没有办法以编程方式处理该异常,以便拥有一个依赖于条件的自动布线?
发布于 2011-03-24 23:35:38
你可以在@Resource中使用SpEL,也许你也可以在@Qualifier中使用它。
但通常情况下,这样的逻辑可以放在FactoryBean中,您可以在其中决定返回哪个实例。
https://stackoverflow.com/questions/5421607
复制相似问题