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



我有以下类结构:

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的异常no唯一类型为I的bean。

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

根据Component文档,该值只是一个"建议名称",而不是一个特定的限定符。如果您还没有,请尝试将其更改为显式指定Qualifier,如下所示:

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

最新更新