Spring:根据父实现选择bean实现

时间:2011-12-12 14:47:10

标签: java spring

我有一个抽象类和两个实现。我们称他们为ParentAbstractParentAParentBParentAbstract具有BeanAbstract: bean类型的属性。此抽象类有两种实现:BeanABeanB

是否可以使用Spring,以便BeanA中的ParentABeanB中的ParentB注入?{/ p>

请注意,我不能将ParentAParentB用作Spring bean,因为它们是Wicket页面。

2 个答案:

答案 0 :(得分:1)

Spring默认尝试按类型自动装配。如果存在歧义(例如此处的情况)必须提供限定符。 建议的方法是显式声明配置中的依赖项(XML@Configuration)或按名称自动跟踪

@Resource(name="beanA")

答案 1 :(得分:1)

ParentAbstract添加抽象方法

abstract setBean(BeanAbstract bean);

然后在子类中,覆盖它们并注释:

@Override
@Autowired
@Qualifier("name") // or @Resource("name")
setBean(BeanAbstract bean) {
    this.bean=bean;
}