BestuseR
@BestuseR
.

Как заставить Spring встраивать интерфейсы?

Доброго времени суток.

Программировал я как-то, и столкнулся с достаточно странной ситуацией.

Бины не хотят то ли инициализироваться, то ли встраиваться в другие компоненты, и не понятно почему, что да как.
Гитхаб проекта (и сразу на нужную ветку

При попытке задеплоить выдается такая ошибка (вырезки): "... Error creating bean with name 'answerRepository' ... method setDao(AnswerDao) ... No qualifying bean of type [AnswerDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}".

Хотя idea все прекрасно видит что и как должно работать.
В этом проекте все отлично работает (имеется в виду инжекция интерфейсов dao в контроллеры).

Также пытался получить эти же бины, или их реальные типы (уже не интерфейсы) с src/Test/main(...) как по имени, так и по alias-ам, так и по типу - никакого успеха. А все остальные бины (не dao) нормально встраиваются.

На ветке гита, адрес на которую я скинул, сделан текущий снимок моего каталога с проектом.
С самой ошибкой сражаюсь уже 2й день, и пока она побеждает.

Спасибо за внимание,
надеюсь на Вашу помощь ;-)

С Уважением,
Андрей.
  • Вопрос задан
  • 340 просмотров
Решения вопроса 1
BestuseR
@BestuseR Автор вопроса
.
Итак, проблема решилась. Не стандартно, но решилось:
проблема была в том, что мои dao-реализации не наследовали соответствующие им dao-интерфейсы, и спринг не мог встроить зависимость.

Этот старый коммит (который делал мой одногрупник, которого я "обучаю"), и он внезапно что-то ослушался, и реализовал не те интерфейсы во всех dao-реализациях, там было:
public class QuestionTagOracleDaoImplement
extends AbstractOracleDaoImplement<QuestionTagsEntity, Integer>
implements QuestionTagOperations, DefaultDao<QuestionTagsEntity, Integer>

а надо было просто реализовать интерфейс AnswerDao (ctrl+c - ctrl+v при современных ide - абсурд).

P.S. простите за ничего в себе не несущий вопрос на т.н. Тостере.

Всем пытавшимся помочь, да или просто читателям, спасибо,
и удачи :)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы