我有以下类结构:
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>{ ... }