В Spring framework вы можете автоматически подключать бобы с помощью функции автоматической проводки. Чтобы включить его, просто определите атрибут ” autowire ” в .
Весной поддерживается 5 режимов автоматической проводки.
- нет – По умолчанию, автоматической проводки нет, установите ее вручную через “ref” атрибут
- byName – Автоматическая проводка по имени свойства. Если имя компонента совпадает с именем другого свойства компонента, автоматически подключите его.
- byType – Автоматическая проводка по типу данных свойства. Если тип данных компонента совместим с типом данных другого свойства компонента, автоматически подключите его.
- конструктор – режим байтового типа в аргументе конструктора.
- автоопределение – Если найден конструктор по умолчанию, используйте “автоматическое подключение по конструктору”; В противном случае используйте “автоматическое подключение по типу”.
Примеры
Объект клиента и человека для демонстрации автоматической проводки.
package com.mkyong.common; public class Customer { private Person person; public Customer(Person person) { this.person = person; } public void setPerson(Person person) { this.person = person; } //... }
package com.mkyong.common; public class Person { //... }
1. Автоматическая проводка “нет”
Это режим по умолчанию, вам нужно подключить свой компонент через атрибут ‘ref’.
2. Автоматическая проводка “по имени”
Автоматическое подключение компонента по имени свойства. В этом случае, поскольку имя компонента “персона” совпадает с именем свойства компонента “клиент” (“персона”), поэтому Spring автоматически подключит его с помощью метода настройки – ” setPerson (Персона)
“.
Смотрите полный пример – Автопроводка пружины по имени .
3. Автоматическая проводка “по типу”
Автоматическое подключение компонента по типу данных свойств. В этом случае, поскольку тип данных компонента “персона” совпадает с типом данных свойства компонента “клиент” (объект Person), поэтому Spring автоматически подключит его с помощью метода настройки – ” setPerson (Персона)
“.
Смотрите полный пример – Пружинный автопровод по типу .
4. “Конструктор” автоматической проводки
Автоматически подключайте компонент по типу данных свойства в аргументе конструктора. В этом случае, поскольку тип данных компонента “персона” совпадает с типом данных аргумента конструктора в свойстве компонента “клиент” (объект Person), поэтому Spring автоматически подключил его с помощью метода конструктора – ” публичный клиент (Персона)
“.
Смотрите полный пример – Автоматическое подключение пружины конструктором .
5. Автоматическая проводка “автоматическое обнаружение”
Если найден конструктор по умолчанию, используется “конструктор”; В противном случае используется “по типу”. В этом случае, поскольку в классе “Клиент” есть конструктор по умолчанию, поэтому Spring автоматически подключил его с помощью метода конструктора – ” публичный клиент (Человек)
“.
Смотрите полный пример – Автоматическое подключение пружины с помощью автоматического определения .
Вывод
На мой взгляд, весенняя “автоматическая проводка” ускоряет разработку с большими затратами – это усложняет весь файл конфигурации компонента, и вы даже не знаете, какой компонент будет автоматически подключен к какому компоненту.
На практике я предпочитаю подключать его вручную, он всегда чистый и отлично работает, или лучше использует аннотацию @Autowired , которая является более гибкой и рекомендуемой.
Оригинал: “https://mkyong.com/spring/spring-auto-wiring-beans-in-xml/”