Spring框架最初是作为对EJB应用的替代出现的,但是EJB3的改进使得EJB得到了重生。那么,Spring框架与EJB能否联合使用呢,答案是肯定的。
下面,我们将详细说明在Spring应用中如何访问EJB服务。
通常,访问EJB服务就是调用EJB对象的方法。这首先要进行JNDI查找获取EJB对象的接口,然后调用create()创建EJB对象,最后调用EJB对象的方法。
为了避免上述过程的代码重复,EJB应用往往使用Service Locator设计模式和Business Delegate设计模式。
Spring框架中,对无状态会话EJB的访问进行了优化,通过Spring框架提供的EJB代理对象,可以避免EJB调用模式的不足,简化对EJB的调用。
假设EJB组件都实现了com.mycom.MyComponent接口。
1.访问本地无状态会话EJB
<bean id="myComponent"
class="org.springframework.ejb.access.LocalStatelessSessionProxyFactoryBean">
<property name="jndiName" value="ejb/myBean"/>
<property name="businessInterface" value="com.mycom.MyComponent"/>
</bean>
<bean id="myController" class="com.mycom.myController">