Spring Framework поддерживает пять режимов автоматического связывания, которые определяют, как зависимости автоматически внедряются в бины. Каждый режим использует разную стратегию для поиска и связывания бинов.
Режим по умолчанию, в котором автоматическое связывание отключено. Зависимости нужно явно задавать через атрибут ref:
<bean id="employee" class="com.dept.Employee">
<property name="manager" ref="manager" />
</bean>
Spring связывает бины по именам свойств. Если имя бина совпадает с именем зависимости, он автоматически её связывает:
<bean id="employee" class="com.dept.Employee" autowire="byName" />
<bean id="manager" class="com.dept.Manager" />
Spring связывает бины на основе типа. Он проверяет типы свойств и подбирает бины с подходящим типом. Примечание: если в контексте существует несколько бинов одного типа — выбрасывается исключение.
<bean id="employee" class="com.dept.Employee" autowire="byType" />
<bean id="manager" class="com.dept.Manager" />
Spring связывает бины по типам аргументов конструктора — аналогично byType. Он ищет бины, соответствующие типам параметров конструктора. Если найдено несколько совпадений — выбрасывается исключение.
<bean id="employee" class="com.dept.Employee" autowire="constructor" />
<bean id="manager" class="com.dept.Manager" />
Интеллектуальный режим с двухэтапной стратегией:
byType<bean id="employee" class="com.dept.Employee" autowire="autodetect" />
<bean id="manager" class="com.dept.Manager" />
Режим автоконнекта byName выбросит исключение, если несколько бинов имеют одинаковое имя свойства как зависимость.
Новый — ещё не проверен сообществом
Вы