Главная » Spring » Внедрение в свойства компонентов Spring

0

Как правило, свойства компонентов JavaBean являются частными и имеют пару методов доступа с именами вида setXXX() и getXXX(). Фреймворк Spring может использовать метод set свойства для на- стройки его значения посредством внедрения через метод записи.

Для демонстрации другой формы DI пригласим на сцену нашего следующего участника. Кенни (Kenny) – талантливый музыкант, как определено классом Instrumentalist  в листинге 2.5.

Листинг 2.5. Определение исполнителя, который является талантливым музыкантом

package com.springinaction.springidol;

public class Instrumentalist implements Performer { public  Instrumentalist()  {

}

public void perform() throws PerformanceException { System.out.print("Playing " + song + " : "); instrument.play();

}

private  String  song;

public  void  setSong(String  song)  {    // Внедрение  мелодии this.song   =   song;

}

public  String  getSong()  { return  song;

}

public String screamSong() { return  song;

}

private Instrument instrument;

public  void  setInstrument(Instrument  instrument)  {         // Внедрение this.instrument  =  instrument;                                        // инструмента

}

}

Как показано в листинге 2.5, класс Instrumentalist содержит два свойства: song и instrument. Свойство song хранит название мело- дии, которую музыкант будет исполнять, и используется в методе perform(). Свойство instrument хранит ссылку на экземпляр класса Instrument, инструмента, на котором музыкант будет играть. Класс Instrument  имеет следующий интерфейс:

package com.springinaction.springidol; public interface Instrument {

public  void  play();

}

Поскольку класс Instrumentalist имеет конструктор по умолчанию, конкурсанта Кенни можно объявить компонентом <bean>, как пока- зано ниже:

<bean  id="kenny"

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

У фреймворка Spring не возникнет проблемы с созданием ком- понента kenny как экземпляра класса Instrumentalist, однако в этом случае Кенни придется несладко – он будет вынужден выступать, не имея ни мелодии, ни инструмента. Посмотрим, как можно передать Кенни мелодию и инструмент с использованием приема внедрения через методы записи.

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

По теме:

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