Pro Spring 4: различия между версиями

Материал из Home Wiki
Перейти к навигации Перейти к поиску
Строка 20: Строка 20:
После: конфигурировать можно не через property, а в самом bean так:
После: конфигурировать можно не через property, а в самом bean так:
p:<тут имя свойства>-ref="id другого бина"
p:<тут имя свойства>-ref="id другого бина"
=== bean/constructor-arg ===
constructor-arg определяет Constructor Injection.


= Кофигурация аннотациями =
= Кофигурация аннотациями =

Версия 08:26, 11 февраля 2017

Конфигурация XML

context:component-scan

Дескриптор <context:component-scan> сообщает Spring о необходимости сканирования кода на предмет внедряемых бинов, аннотированных с помощью @Component, @Controller, @Repository и @Service, а также поддерживающих аннотации @Autowired и @Inject в указанном пакете (и всех eгo внутренних па­ кетах). В дескрипторе <context:component-scan> можно определить множест­во пакетов, используя в качестве разделителя запятую, точку запятой или пробел. Кроме того, для более детализированного управления этот дескриптор поддержи­вает включение и исключение сканирования компонентов. Также можно указать пакет для сканирования через установку атрибута base-package. Еще можно указать исключения через context:exclude-filter.

bean

bean/property

name - Имя свойства бина value - значение (простой тип) До версии 2.5: ref - ссылка на другой бин по id После: конфигурировать можно не через property, а в самом bean так: p:<тут имя свойства>-ref="id другого бина"

bean/constructor-arg

constructor-arg определяет Constructor Injection.

Кофигурация аннотациями

@Service

Пример - @Service("messageRenderer") указывает, что этот бин предоставляет службы, которые могут требоваться другим бинам; в качестве параметра аннотации передается имя бина.

@Autowired

Если указано на setter, то происходит автоматическое связывание.

@Inject

В спринг аналогична автоматическому связыванию (JSR-299).

@Resource

Пример - @Resource (name = "messageProvider") указывается для поддержки автоматического связывания. (JSR-250)