Spring @Qualifier在继承接口时不起作用

时间:2015-03-30 14:01:19

标签: java spring javabeans

我有以下类结构:

class A{
...
}

class B{
...
}

interface I<T>{
...
 } 

@Component("childA")
class ChildA implements I<A>{
. ..
}

@Component("childB")
class ChildB implements I<B>{
...
}


class Test {
@Autowired
@Qualifier("childA")
public I<A> childOfA;
}

即使在使用限定符之后,我也为属性childOfA获取了类型I的唯一bean的异常。

我尝试过使用default-autowire = no - 它与代码的其他部分搞混了。

1 个答案:

答案 0 :(得分:0)

根据Component docs,值只是“建议的名称”,而不是特定的限定符。如果您还没有,请尝试将其更改为明确指定Qualifier,如下所示:

@Component
@Qualifier("childA")
class ChildA implements I<A>{ ... }

@Component
@Qualifier("childB")
class ChildB implements I<B>{ ... }