Я имею следующую структуру класса: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;
}
я получаю исключение не уникальный компонент типа I для свойства childOfA
даже после того, как я использую классификатор.
Я пробовал использовать default-autowire = no
- он перепутался с другими частями кода.
Пробовал. По-прежнему получена такая же ошибка. –
Даже попытался объявить bean-элементы childA и childB с помощью xml, но все равно столкнулся с той же проблемой. –
Я видел в прошлом, когда Spring имеет некоторые проблемы с выяснением типов шаблонов из-за типа Erasure. Я попытаюсь вспомнить, как я это решал в прошлом, и оставляю еще один комментарий. В конце концов, я просто полностью избавился от интерфейсов, потому что они были расточительными во всех наших случаях использования. – xathien