1 | |||||||||||||||||||||
Spring Autowired Annotation14.10.2015, 22:33. Показов 1213. Ответов 7
Метки нет (Все метки)
Ребята, че за нафиг, как это вообще работает?!
Стандартный пример, напечатать HELLO_WORLD, для этого: 1. Класс MessageProvider Кликните здесь для просмотра всего текста
2. Класс MessageRenderer Кликните здесь для просмотра всего текста
3. Запускающий класс Кликните здесь для просмотра всего текста
4. Xml config Кликните здесь для просмотра всего текста
Каким образом аннотация @Autowired должна подцепить messageProvider'a ? Не по теме: Please, только не посылайте к Google, мы с ним сейчас поругались
0
|
14.10.2015, 22:33 | |
Ответы с готовыми решениями:
7
Spring на клиенте и Autowired Spring аннотация Autowired [Spring] @Autowired сервиса Spring: using annotation declaration and @Qualifier |
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
15.10.2015, 01:46 | 2 |
Книжечка Spring 4 для профессионалов, вторая глава? )
@Autowired всего лишь говорит контейнеру о том, что надо бы этому полю предоставить нужную имплементацию. Собственно, это и происходит. HelloWorldMessageProvider вы пометили аннотацией @Service, которая гарантирует то, что этот класс будет под управлением контейнера (т.е. будет бином ). Уберите ее, и такого результата вы уже не получите. Добавлено через 3 минуты Это ознакомительный пример, надо читать дальше )
0
|
15.10.2015, 12:48 [ТС] | 3 | |||||
Не, книжка Spring 3 для профессионалов, четвертая глава
Проблема в том, что этот код (т.е. аннотация @Autowired) не работает. Через xml все работает как надо, через аннотацию нет. Вот и пытаюсь понять почему не работает, может из-за того что версии разные? (Юзаю Spring 4, книжка по Spring 3) Кликните здесь для просмотра всего текста
0
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|||||||||||
15.10.2015, 15:10 | 4 | ||||||||||
Попробуйте после
1
|
15.10.2015, 17:59 [ТС] | 5 | |||||
Нет, не получается. Щас гуглю
Кликните здесь для просмотра всего текста
0
|
34 / 25 / 15
Регистрация: 06.12.2012
Сообщений: 144
|
|
15.10.2015, 19:15 | 6 |
Spring создает граф объектов из тех что вы проанатировали и объявили в xml (кстати, пора бы перейти на конфиг классы). Там используется много разных интересных вещей с прокси-объектами и сингтон-инстансами. Смысл в том, что как только spring видит в каком-то классе Autowired, то он сразу подсовывает туда объект-реализацию из графа.
Так же лучше автовайридь не гет-сет а сразу на переменную.
0
|
15.10.2015, 19:42 [ТС] | 7 | |||||
У меня вопрос, как у MessageRenderer в поле MessageProvider проставится конкретный экземпляр?
Давайте пройдемся как работает спринг в данном примере: (в моем видении) 1. Спринг в начале начинает сканировать этот пакет:
3. Видит что у MessageRenderer в поле MessageProvider стоит аннотация @Autowired. Тут он пытается его заполнить - вопрос, откуда ему (Спрингу) знать какую реализацию туда инжектить? Где связь между MessageRenderer & HelloWorldMessageProvider ?
0
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
||||||
15.10.2015, 19:46 | 8 | |||||
Покажи итоговый код.
Чтобы с лоадом не мучаться, можно просто:
А в этом проекте их много? Реализация одна - подсовывает ее. Если несколько, то кинет эксепшн. И надо будет ему конкретно указать название бина.
0
|
15.10.2015, 19:46 | |
15.10.2015, 19:46 | |
Помогаю со студенческими работами здесь
8
Java Spring (Annotation Controller) Spring Boot @Autowired в коллекцию Jsp+Spring MVC+annotation redirect Spring и аннотации @Configuration & @Autowired Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |