Spring MVC与EJB整合


一、企业开发模式

目前javaEE应用的开发方式大致可以分为两种:一种以Spring、Hibernate等开源框架为基础即所谓的轻量级JavaEE应用;另一种则以EJB3+JPA为基础配合一些前端框架如JSF、struts2、SpringMvc等等的经典JavaEE开发模式。由于EJB2.0使用相对比较复杂,目前使用的情况来说很多企业基本上使用的是ssh架构,EJB3.0做了改善之后开始以spring+ejb+jpa的组合方式进行开发。

二、Spring MVC+ejb整合

1.通过工厂的方式

public class EJBFactory
{
 public static Object lookup(String ejbRefName)
      {
      try{
  InitialContext ctx=new InitialContext();
        return ctx.lookup("java:comp/env/"+ejbRefName);
<span style="white-space:pre"> </span> }
      catch(NamingException e)
      {
        e.printStackTrace();
      }
    }
}

2.通过Spring将两者结合

方法一、通过spring提供的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">
    <property name="myComponent" ref="myComponent"/>
</bean>

方法二、通过<jee:local-slsb> 或者 <jee:remote-slsb>

<jee:local-slsb id="myComponent" jndi-name="ejb/myBean"
        business-interface="com.mycom.MyComponent"/>
 
<bean id="myController" class="com.mycom.myController">
    <property name="myComponent" ref="myComponent"/>
</bean>

三、总结

不管以哪种方式组合,最根本的还是需要通过jndi去查找相应的ejb,只不过三种方式是在jndi查找的基础上进行了封装,如工厂方法是将jdni查找的过程进行了封装;Spring提供了两种方法,一个是工厂构造出相应的ejb代理对象,这种方法是spring容器经常使用的一种方法;一种是通过拦截器实现,当有ejb请求是相应的拦截器会将请求传递给jndi查找到的ejb。三种方法都可以,只不过相对而言通过spring的方式更有效率更简单,好多问题spring容器都给我们解决了。

Spring MVC+Spring3+Hibernate4开发环境搭建

Spring MVC整合Freemarker基于注解方式

基于注解的Spring MVC简单介绍

Spring MVC 框架搭建及详解

本文永久更新链接地址:

相关内容