我不知道您是否考虑将拦截器作为耦合应用,但据我所知,这是标准方法。从
Chapter 18. Enterprise Java Beans (EJB) integration
文件编号:
对于EJB3会话bean和
消息驱动bean,Spring提供
一种方便的拦截器,可以解决
2.5春季
@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
,
在bean中定义上下文
名为的定义文件
beanRefContext.xml
. 默认情况下,A
需要单个上下文定义,
通过类型而不是
按名字。但是,如果你需要
在多个上下文之间选择
定义,特定的定位键是
必修的。定位键(即
中上下文定义的名称
beanrefcontext.xml文件
可以
通过明确指定
重写
getBeanFactoryLocatorKey
A方法
习俗
弹簧自动布线拦截器
子类。
从耦合的角度来看,我所知道的唯一其他选项(扩展EJB2.X支持类)要糟糕得多(因此无法回答您的问题)。
也见