Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с @Autowired 
:(
    Опции темы
MakTpaxep
Дата 24.12.2012, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 25.11.2010

Репутация: нет
Всего: нет



Сделал всё как у этого дядьки http://www.sivalabs.in/2011/04/springmvc3-...rud-sample.html
Ошибка
Код

SEVERE: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start:
 org.apache.catalina.LifecycleException: org.springframework.beans.factory.BeanCreationException:
 Error creating bean with name 'contactsController': Injection of autowired dependencies failed;
 nested exception is org.springframework.beans.factory.BeanCreationException:
 Could not autowire field: private mypack.dao.ContactsDAO mypack.controller.ContactsController.contactsDAO;
 nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
 No matching bean of type [mypack.dao.ContactsDAO] found for dependency:
 expected at least 1 bean which qualifies as autowire candidate for this dependency.
Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

Направьте меня)

Это сообщение отредактировал(а) MakTpaxep - 24.12.2012, 19:53
PM MAIL   Вверх
Nofate
Дата 24.12.2012, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 266
Регистрация: 13.10.2008

Репутация: 2
Всего: 8



Разберем ваш лог. Вчитываемся:

Код

Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start:

Было брошено исключение при инициализации приложения. Ок. Читаем далее.
Код

org.apache.catalina.LifecycleException: org.springframework.beans.factory.BeanCreationException:
 Error creating bean with name 'contactsController': Injection of autowired dependencies failed;

Исключение брошено из-за ошибки создания бина (экземпляра класса) с именем contactsController. Не удалось выполнить  внедрение зависимости, отмеченной аннотацией @Autowired. Какой именно зависимости?
Код

Could not autowire field: private mypack.dao.ContactsDAO mypack.controller.ContactsController.contactsDAO;

Речь о поле contactsDAO типа ContactsDAO.
Почему не удалось?
Код

 nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
 No matching bean of type [mypack.dao.ContactsDAO] found for dependency:
 expected at least 1 bean which qualifies as autowire candidate for this dependency.


Spring не смог найти ни одного класса реализующего интерфейс ContactsDAO.

Почему так могло случиться? Вы могли:
  • забыть указать аннотацию @Repository перед классом ContactsDAO.
  • забыть указать пакет для поиска в applicationContext.xml.
    Код

      <context:component-scan base-package="mypack.dao"></context:component-scan>


Это сообщение отредактировал(а) Nofate - 24.12.2012, 20:45


--------------------
The future is not set, there is no fate but what we make for ourselves.
Нофейтово пространство и смежные области 
PM MAIL WWW ICQ   Вверх
MakTpaxep
Дата 24.12.2012, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 25.11.2010

Репутация: нет
Всего: нет



Спасибо! Помогло.
А не подскажете почему в этом проекте не создаётся сначала интерфейс DAO, а потом уже класс реализующий интерфейс?
Во многих проектах так сделано, я не понимаю зачем. Тут и без дополнительных движений всё работает.
PS хотя у меня пока что не всё работает, но думаю донастрою,

Это сообщение отредактировал(а) MakTpaxep - 24.12.2012, 21:30
PM MAIL   Вверх
Nofate
Дата 24.12.2012, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 266
Регистрация: 13.10.2008

Репутация: 2
Всего: 8



Цитата(MakTpaxep @  24.12.2012,  21:24 Найти цитируемый пост)
Во многих проектах так сделано, я не понимаю зачем.

Разделение интерфейса от реализации очень полезно. Повышает модульность, упрощает тестирование, позволяет менять реализацию на лету. Скажем у нас могло бы быть несколько реализаций DAO.

В выше упомянутом примере автор, видимо желал упростить материал для понимания, поэтому не стал заморачиваться интерфейсами.


--------------------
The future is not set, there is no fate but what we make for ourselves.
Нофейтово пространство и смежные области 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0901 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.