Главная » Spring » Добавляем лайм в кокос Spring

0

Для иллюстрации возможности динамического управления ком- понентов в Spring внедрим реализацию интерфейса Lime, управляе- мую сценарием, в Java-объект Coconut. Для начала познакомимся с классом Coconut, представленным в листинге 3.6.

Листинг 3.6. Java-класс в кокосовой скорлупе

package com.springinaction.scripting;

public class Coconut { public Coconut() {}

public void drinkThemBothUp() {

System.out.println("You  put  the  lime  in  the  coconut…"); System.out.println("and  drink  ‘em  both  up…"); System.out.println("You  put  the  lime  in  the  coconut…"); lime.drink(); // Вызов метода drink() интерфейса Lime

}

// Внедряемый компонент

private  Lime  lime;                             // Для  внедрения public  void  setLime(Lime  lime)  {   // реализации

this.lime =  lime;                      // интерфейса  Lime

}

}

Класс Coconut имеет один простой метод с именем drinkThemBothUp(). При вызове этого метода в поток System.out выводится начало чет- веростишья из песни мистера Нильсона (Mr. Nilsson). В последней строке метода вызывается метод drink() внедренного объекта Lime, который выводит последнюю строку четверостишья. Внедренный компонент – это произвольный объект, реализующий следующий интерфейс:

package    com.springinaction.scripting; public  interface  Lime  {

void drink();

}

В процессе конфигурирования приложения в Spring в класс Coconut внедряется ссылка на объект Lime, как показано в следующем фрагменте XML-кода:

<bean id="coconut" class="com.springinaction.scripting.Coconut">

<property name="lime" ref="lime" />

</bean>

Пока ни в классе Coconut, ни в интерфейсе Lime не видно ничего особенного, что указывало бы на компоненты, управляемые сцена- риями. Этот программный код напоминает примеры простых ком- понентов JavaBean и внедрения зависимостей (DI) из главы 2.

Единственное, чего здесь не хватает, – реализации интерфейса Lime и ее объявления в контексте Spring. Здесь подойдет любая реа- лизация интерфейса Lime на языке Java. Но я обещал лайм, управля- емый сценарием, поэтому далее я представлю вам такой лайм.

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

По теме:

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