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

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

Лента обновлений
ссылка 12:09:43
Комментарий от Cowboy1992:
ну а ты в шторме проверь . то что сохраняется это фак...
ссылка 12:04:29
Комментарий от Cowboy1992:
да $var1 = 13 это факт ,но выводим то мы $var2 !
ссылка 10:19:37
Комментарий от llandyll:
Сам вопрос изначально сформулирован так, что подталкива...
ссылка 00:08:40
Комментарий от test1428:
Код рабочий , просто не для школы
ссылка Jul 17 22:41
Комментарий от AkiraSan:
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░▓▓▓▓▓░░░░░░░...
Статистика

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

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