Внезапно NoUniqueBeanDefinitionException - PullRequest
0 голосов
/ 05 сентября 2018

Я должен был сделать некоторые разработки для старого проекта, который использует Spring с аннотациями.

Я получил его из SVN (без изменений с момента последнего развертывания), сгенерировал войну, используя Gradle, как обычно, развернул ее в Tomcat с той же версией, что и раньше, и попытался запустить с той же версией Java. Все как всегда, кроме используемой версии Eclipse.

Проблема в том, что я получаю NoUniqueBeanDefinitionException для каждого поля, которое определяет класс, расширяющий абстрактный класс. Это похоже на то, что если Spring по какой-то причине не может определить, какой класс он должен использовать, даже если он указан в сигнатуре метода:

@Autowired
@Override
protected void setEntityDao(ListboxItemDao entityDao) {...}

Где ListboxItemDao расширяется GenericDao

И я получаю это исключение:

org.springframework.beans.factory.NoUniqueBeanDefinitionException:
No qualifying bean of type [com.section.generic.dao.GenericEntityDao] is defined:
expected single matching bean but found 32: listboxItemDao, anotherDao1, anotherDao2...

Я вижу, что могу это исправить, добавив @Qualifier("listboxItemDao"), однако я не понимаю, почему это работало раньше без @Qualifier. Это очень раздражает, что теперь, из-за небольшого изменения, я должен добавить это @Qualifier ко всем службам ...

Что может быть такого, что теперь мне требуется это @Qualifier, когда все окружение одинаково?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...