我想向EJB添加依赖项。我怎么用Spring做到这一点?从属对象是一般服务对象。根据下面的代码,我想连接myDependency而不必使用'new'。 EJB在weblogic中运行。
@Stateless(mappedName = "MyBean")
public class MyBean implements MyBeanRemote, MyBeanLocal {
@EJB(name = "MyOtherBean")
private MyOtherBean myOtherBean;
private MyDependency myDependency;
...
}
答案 0 :(得分:5)
对于EJB 3会话Bean和消息驱动Bean,Spring提供了一个 方便的拦截器解决了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(...);
}
...
}
然而,无状态EJB和Spring bean提供了或多或少相同的可能性。将它们混合在一起似乎是不必要的复杂性。