Spring @Qualifier не работает при наследовании интерфейса

1

У меня есть следующая структура классов:

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 даже после использования квалификатора.

Я попытался использовать default-autowire = no - он перепутался с другими частями кода.

Теги:
spring
javabeans

1 ответ

0

Согласно документам Component, значение представляет собой только "предлагаемое имя", а не определенный квалификатор. Если вы еще этого не сделали, попробуйте изменить его, чтобы явно указать Qualifier, например:

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

@Component
@Qualifier("childB")
class ChildB implements I<B>{ ... }
  • 0
    Попробовал это. Все еще получил ту же ошибку.
  • 0
    Даже пытался объявить bean-компоненты childA и childB, используя xml, но все же столкнулся с той же проблемой
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню