Главная » Spring » Внедрение простых значений Spring

0

Свойства компонента могут быть настроены в Spring с помощью элемента <property>. Элемент <property> во многом схож с элементом

<constructor-arg>, за исключением того, что вместо внедрения зна- чений через аргументы конструктора элемент <property> вызывает метод записи свойства.

Для иллюстрации передадим Кенни мелодию для исполнения с помощью приема внедрения через метод записи. Следующий фраг- мент XML представляет доработанное объявление компонента kenny:

<bean  id="kenny"

class="com.springinaction.springidol.Instrumentalist">

<property name="song" value="Jingle Bells" />

</bean>

Как только будет создан экземпляр класса Instrumentalist, Spring воспользуется методами записи, чтобы присвоить указанные значе- ния свойствам, описанным элементами <property>. Элемент <property> в этом фрагменте XML предписывает фреймворку Spring вызвать метод setSong()  для записи значения "Jingle   Bells"  в свойство song.

В данном случае для внедрения строкового значения в свойство используется атрибут value элемента <property>. Но элемент <property> позволяет внедрять не только строковые значения. В атрибуте value можно также указывать числовые (int, float, java.lang.Double и дру- гие) и логические значения.

Например, представим, что класс Instrumentalist имеет свойство age типа int, определяющее возраст музыканта. Тогда можно было бы указать возраст Кенни, как показано ниже:

<bean  id="kenny"

class="com.springinaction.springidol.Instrumentalist">

<property name="song" value="Jingle Bells" />

<property name="age" value="37" />

</bean>

Обратите внимание, что при определении числового значения атрибут value используется точно так же, как при определении стро- кового значения. Фреймворк Spring автоматически определяет тип значения, опираясь на тип свойства. Поскольку свойство age имеет тип int, Spring знает, что строку "37" следует преобразовать в цело- численное значение перед вызовом метода setAge().

Использование элемента <property> прекрасно подходит для на- стройки простых свойств компонента, но DI – это больше, чем при- сваивание жестко определенных значений. Настоящая ценность DI заключается в возможности связывания взаимодействующих объек- тов, чтобы они не связывали себя сами. С этой целью рассмотрим, как передать Кенни инструмент, на котором он будет играть.

Источник:   Уоллс К., Spring в действии. – М.: ДМК Пресс, 2013. – 752 с.: ил.

По теме:

  • Комментарии