Руководство по Spring. Автосвязывание бинов.

Ранее мы уже изучили, как объявлять и связывать бины с помощью таких тегов, как <constructor-arg> и <property> в XML-файле.

Но Spring Framework позволяет нам осуществлять автоматическое связывание бинов (autowiring). Это позволяет нам существенно сократить объём кода в конфигурационном XML-файле, что особенно помогает при написании больших приложений.

Существует несколько режимов автоматического связывания в Spring:

(пусто)

Этот режим установлен по умолчанию и означает отсутствие автоматического связывания. Т.е. мы должны использовать прямую ссылку на бин для связывания. Такой способ мы уже рассматривали в статье внедрение зависимостей.


byName (ссылка на пример)

Используется автоматической связывание по имени бина. Контейнер Spring ищет в XML файле бин с указанным именем. И если находит бин с таким же именем – производит автоматическое связывание.


byType (ссылка на пример)

Автоматическое связывание по типу. В этом случае контейнер Spring ищет совпадение по типу. В случае, если он находит – происходит автоматическое связывание. Если в XML-файле определены несколько бинов с таким типом, то мы получаем исключение (exception).


constructor (ссылка на пример)

Здесь всё происходит так же, как и при использовании режима ‘byType’, с тем отличием, что поиск идёт по аргументам конструктора. Если в XML-файле находится несколько таких бинов – мы получаем ошибку (error).


autodetect

В этом режиме сначала происходит связывание в режиме ‘constructor’, а затем (если автосвязывание не произошло) в режиме ‘byType’.


Для более ясного понимания темы, настоятельно рекомендую ознакомиться с примерами приложений, указанными по ссылкам.

В этой статье мы ознакомились с основами автоматического связывания в Spring Framework.