Я не знаю, рассматриваете ли вы применение перехватчика в качестве связующего, но это, насколько мне известно, стандартный подход. Из Глава 18. Интеграция Enterprise Java Beans (EJB) документации:
Для EJB 3 Session Beans и
Бин, управляемый сообщениями, Spring предоставляет
удобный перехватчик, который разрешает
Spring 2.5's @Autowired
аннотация
в классе компонентов EJB:
org.springframework.ejb.interceptor.SpringBeanAutowiringInterceptor
.
Этот перехватчик может быть применен
через
@Interceptors
аннотация в классе компонентов EJB,
или через связывающий перехват XML
элемент в развертывании EJB
Дескриптор.
@Stateless
@Interceptors(SpringBeanAutowiringInterceptor.class)
public class MyFacadeEJB implements MyFacadeLocal {
// automatically injected with a matching Spring bean
@Autowired
private MyComponent myComp;
// for business method, delegate to POJO service impl.
public String myFacadeMethod(...) {
return myComp.myMethod(...);
}
...
}
SpringBeanAutowiringInterceptor
от
по умолчанию получает целевые бины из
ContextSingletonBeanFactoryLocator
,
с контекстом, определенным в бине
файл определения с именем
beanRefContext.xml
. По умолчанию
ожидается определение единого контекста,
который получается по типу, а не
по имени. Однако, если вам нужно
выбирать между несколькими контекстами
Определения, конкретный ключ локатора
требуется. Ключ локатора (то есть
имя определения контекста в
beanRefContext.xml
) можно
явно указано либо через
переопределение
getBeanFactoryLocatorKey
метод в
обычай
SpringBeanAutowiringInterceptor
подкласс.
Единственный другой вариант, который мне известен (расширение классов поддержки EJB 2.x), намного хуже с точки зрения связи (и, следовательно, не отвечает на ваш вопрос).
Смотри также