Главная » Spring » Внедрение ресурсов с помощью аннотации Spring

0

Для иллюстрации использования аннотаций EJB 3 с помощью Pitchfork вернемся к примеру класса рыцаря из главы 1. Представь- те, что нам необходимо переписать класс BraveKnight из главы 1 и задействовать аннотацию @Resource для внедрения зависимости. Это можно сделать, как показано в листинге 16.2.

Листинг 16.2. Внедрение сценария в компонент BraveKnight с помощью аннотации

package  com.springinaction.knight; import  javax.annotation.Resource;

public  class  BraveKnight  implements  Knight  {

@Resource(name = "quest")                  // Внедрение сценария подвига private   Quest   quest;

public  String  name;

public   BraveKnight(String   name)   { this.name  =  name;

}

public String getName() { return name;

}

public void embarkOnQuest() {

quest.embark();                               // Использование  внедренного  сценария

}

}

Ниже демонстрируется, как выполняется настройка этого компо- нента BraveKnight:

<bean id="knight" class="com.springinaction.knight.BraveKnight">

<constructor-arg  value="Bedivere"  />

</bean>

В главе 1 внедрение сценария выполнялось в XML-конфигурации. А здесь эта обязанность возложена на аннотацию @Resource. Аннота- ция @Resource попытается отыскать объект с именем quest и при обна- ружении внедрит его в свойство quest. Обратите внимание, что здесь отпала надобность в методе setQuest() – аннотация @Resource способна внедрять зависимости непосредственно в частные свойства!

Но откуда будет взят объект quest? Сначала Pitchfork проверит наличие объекта quest в репозитории JNDI и, если такой объект име- ется, внедрит в свойство quest объект из репозитория JNDI. Если поиск в JNDI не увенчается успехом, будет предпринята попытка отыскать компонент с именем quest в контексте приложения Spring.

Таким образом, вам необходимо будет либо поместить реали- зацию интерфейса Quest в JNDI, либо объявить компонент Spring с именем quest:

<bean id="quest"

class="com.springinaction.knight.SlayDragonQuest" />

Мы познакомились с возможностью Pitchfork внедрять зависимо- сти посредством аннотации EJB 3. А теперь посмотрим, как Pitchfork

поддерживает аспектно-ориентированное программирование EJB 3 на примере перехватчиков.

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

По теме:

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