繁体   English   中英

弹簧自动接线

[英]Spring Auto-wiring

假设我有两个类Circle和Rectangle实现一个称为Shape的接口。
我有以下课程:

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

我想做的是删除@Qualifier并使自动装配取决于某些条件(例如,如果条件为true,则注入Circle,如果条件为false,则注入矩形)或使接线取决于命名约定。
有没有办法做到这一点 ?

让我解释一下,如果我删除@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]

有没有一种方法可以通过编程方式处理该异常,以实现条件相关的自动装配?

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

但是通常可以将此类逻辑放置在FactoryBean ,您可以在其中确定要返回的实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM