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

Свои вопросы для тестов можно добавлять на странице с информацией о тесте. При этом для некоторых тестов добавление вопросов закрыто

Лента обновлений
ссылка May 18 13:25
Комментарий от MAX200688:
А как же неявный вызов конструктора родительского клас...
ссылка May 17 20:56
Комментарий от motya:
И лишнюю точку с запятой поставить, чтобы народ сетовал
ссылка May 17 20:49
Комментарий от motya:
Программы не существует
ссылка May 17 07:00
Комментарий от IWind:
Вот это бред, а не вопрос, автор вопроса ты был под чем?
ссылка May 16 21:33
Комментарий от kaput182:
Ужасно сформулированное условие.
Статистика

Тестов: 153, вопросов: 8595. Пройдено: 433514 / 2126322.

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

head tail Статья
дата22.10.2012
авторlehaalexx2
голосов6
В 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" />

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

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