Топ контрибуторов
loading
loading
Знаете ли Вы, что

В разделе "Статьи" можно найти обучающие статьи по информационным технологиям, а также узнать о новостях сервиса Quizful.

Лента обновлений
ссылка 00:27:28
Комментарий от jikoma9554:
Если перефразировать, то будет звучать так: абстракци...
ссылка Jun 6 16:29
Комментарий от RomChig:
Прошёл, классные тесты, спасибо, респект, есть совсем пр...
ссылка Jun 5 18:51
Комментарий от mnvbmjh:
и где 4 вариант ответа где написано что всё из выше пере...
ссылка Jun 5 14:47
Добавлен вопрос в тест C - Средний уровень
ссылка Jun 5 13:55
Комментарий от dokel:
У відповіді не написано, що це називається Integer Pool, б...
Статистика

Тестов: 153, вопросов: 8597. Пройдено: 460873 / 2255027.

Spring Auto-Wiring (автоматическая привязка бинов)

head tail Статья
дата22.10.2012
авторlehaalexx2
голосов7
В Spring вы можете привязать бин автоматически, используя функцию auto-wiring. Чтобы использовать эту функцию достаточно просто определить атрибут autowire в <bean>.

<bean id="customer" class="com.test.Customer" autowire="byName" />

Spring поддерживает 5 режимов автопривязки:

no – по умолчанию, нет авто привязки, ее нужно устанавливать вручную с использованием атрибута ref.
byName – Авто привязка по имени, если имя указанное в свойствах бина в атрибуте autowire="byName" такое же как имя бина, то привязка производится автоматически.
byType – Авто привязка по типу данных, если тип данных бина совпадает с указанным типом данных в авто привязке, то привязака производится автоматически.
constructor – привязка по типу аргумента конструктора. 
autodetect – если контсруктор по умолчанию найден, используется автопривязка. 

Пример

Для демонстрации авто привязки бина используем 2 объекта Customer и Person

package com.test.common;
 
public class Customer 
{
private Person person;
 
public Customer(Person person) {
this.person = person;
}
 
public void setPerson(Person person) {
this.person = person;
}
//...
}
package com.test.common;
 
public class Person 
{
//...
}

1. Auto-Wiring ‘no’

Это режим по умолчанию, авто привязку надо осуществлять вручную через ref атрибут.

<bean id="customer" class=" com.test.common.Customer">
                  <property name="person" ref="person" />
</bean>
 
<bean id="person" class="com.test.common.Person" />

 
2. Auto-Wiring ‘byName’

Авто привязка бина по имени. В этом случае имя бина “person” такое же как и имя поля в классе “customer”, поэтому Spring автоматически привяжет бин “person” использую метод setPerson(Person person) в классе Сustomer.

<bean id="customer" class=" com.test.common.Customer" autowire="byName" />
 
<bean id="person" class=" com.test.common.Person" />

3. Auto-Wiring ‘byType’

Авто привязка по типу данных. Тип данных бина “person” совпадает с типом данных поля private Person person в классе Customer, Spring автоматически привяжет бин к полю Persone.

<bean id="customer" class=" com.test.common.Customer" autowire="byType" />
 
<bean id="person" class="com. test.common.Person" />

4. Auto-Wiring ‘constructor’

Авто привязка по типу данных аргумента конструктора. В этом случае, если тип данных бина “person” такой же как тип данных аргумента “customer”, то бин будет привязан автоматически.

<bean id="customer" class="com. test.common.Customer" autowire="constructor" />
 
<bean id="person" class="com. test.common.Person" />

5. Auto-Wiring ‘autodetect’

Если будет найден конструктор по умолчанию в классе Customer, то Spring привяжет бин используя этот конструктор.
public Customer(Person person) {
this.person = person;
}

<bean id="customer" class="com. test.common.Customer" autowire="autodetect" />

Если Вам понравилась статья, проголосуйте за нее

Голосов: 7  loading...
lehaalexx2   mikand   lula   Giggs13   rKet   stasyan72   geninnaruto