Автосвязывание бинов
Ранее мы уже изучили, как объявлять и связывать бины с помощью таких тегов, как <constructor-arg> и <property> в XML-файле.
Но Spring Framework позволяет нам осуществлять автоматическое связывание бинов (autowiring). Это позволяет нам существенно сократить объем кода в конфигурационном XML-файле, что особенно помогает при написании больших приложений.
Существует несколько режимов автоматического связывания в Spring:
(пусто)
Этот режим установлен по умолчанию и означает отсутствие автоматического связывания. Т.е. мы должны использовать прямую ссылку на бин для связывания. Такой способ мы уже рассматривали в статье внедрение зависимостей.
Используется автоматическое связывание по имени бина. Контейнер Spring ищет в XML-файле бин с указанным именем. И если находит бин с таким же именем – производит автоматическое связывание.
Автоматическое связывание по типу. В этом случае контейнер Spring ищет совпадение по типу. В случае, если он находит – происходит автоматическое связывание. Если в XML-файле определены несколько бинов с таким типом, то мы получаем исключение (exception).
constructor (ссылка на пример)
Здесь все происходит также, как и при использовании режима ‘byType’, с тем отличием, что поиск идет по аргументам конструктора. Если в XML-файле находится несколько таких бинов – мы получаем ошибку (error).
autodetect
В этом режиме сначала происходит связывание в режиме ‘constructor’, а затем (если автосвязывание не произошло) в режиме ‘byType’.
Для более ясного понимания темы, настоятельно рекомендуем ознакомиться с примерами приложений, указанных по ссылкам.