Главная » Spring » Pitchfork

0

Фреймворк – это расширение для Spring, обеспечи- вающее поддержку аннотаций EJB 3. Это совместная разработка Interface 21 (коллектив разработчиков Spring) и BEA, и использу- ется в WebLogic Server 10 компании BEA для поддержки EJB 3. Но, чтобы использовать фреймворк, совсем необязатель-

но пользоваться WebLogic. – открытое программное обес- печение, распространяемое на условиях лицензии Apache Software License 2.0, может использоваться в любых приложениях, основан- ных на фреймворке Spring 2.0. Загрузить можно на сайте компании Interface 21 http://www.springframework.com/pitchfork.

Фреймворк не является полноценной реализацией спе- цификации EJB 3. Однако он поддерживает внедрение зависимостей и аспектно-ориентированное программирование посредством анно- таций EJB 3, включая перечисленные в табл. 16.1.

В этом разделе будет показано, как с помощью можно использовать некоторые из этих аннотаций в контексте Spring. При этом будет предполагаться, что вы уже знакомы с положениями спецификации EJB 3 и этими аннотациями. Более подробное об- суждение EJB 3 можно найти в книге «EJB 3 in Action» (Manning, 2006).

Таблица 16.1. Аннотации EJB 3, поддерживаемые фреймворком

Аннотация

Описание

@ApplicationException

Объявляет исключение прикладным исключени- ем, которое по умолчанию не будет откатывать транзакцию

@AroundInvoke

Объявляет метод методом перехватчика

@EJB

Объявляет зависимость от EJB

@ExcludeClassInterceptors

Объявляет, что метод не должен перехватываться классом-перехватчиком

@ExcludeDefaultInterceptors

Объявляет, что метод не должен перехватываться классом-перехватчиком, используемым

по умолчанию

@Interceptors

Определяет один или более классов-перехватчи- ков для связи с классом компонента или методом

@PostConstruct

Определяет метод, который будет вызван

для завершения инициализации после создания компонента и внедрения всех зависимостей

@PreDestroy

Определяет метод, который будет вызван перед удалением компонента из контейнера

@Resource

Объявляет зависимость от внешнего ресурса

@Stateless

Объявляет, что компонент будет сеансовым ком- понентом без поддержки информации о состоянии

@TransactionAttribute

Определяет, что метод должен вызываться в контексте транзакции

Введение в

Для внедрения зависимостей в компоненты, отмеченные аннота- циями EJB 3, использует постпроцессор фабрики компо- нентов. На выбор предлагаются два постпроцессора:

# org.springframework.jee.config.JeeBeanFactoryPostProcessor;

#       org.springframework.jee.ejb.config.JeeEjbBeanFactoryPostProcessor. Эти два постпроцессора практически идентичны. Оба поддержи-

вают все аннотации, перечисленные в табл. 16.1, кроме аннотации

@EJB, которая поддерживается только постпроцессором JeeEjbBean- FactoryPostProcessor. Если вам необходима аннотация @EJB, выбирать следует постпроцессор JeeEjbBeanFactoryPostProcessor. В остальных случаях можно использовать любой из постпроцессоров.

Чтобы настроить один из этих постпроцессоров в Spring, доста- точно просто добавить его как компонент в контекст приложения Spring. Например, чтобы задействовать JeeBeanFactoryPostProcessor, добавьте следующее объявление:

<bean class="org.springframework.jee.config.JeeBeanFactoryPostProcessor" />

После настройки JeeBeanFactoryPostProcessor можно начинать ис- пользовать аннотации EJB 3. Далее я покажу, как применять их к компонентам Spring.

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

По теме:

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