springmvc与ejb整合

一、企业开发模式

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

二、SpringMvc+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容器都给我们解决了。

时间: 2024-10-10 08:20:41

springmvc与ejb整合的相关文章

springMVC+MyBatis+Spring 整合(3)

spring mvc 与mybatis 的整合. 加入配置文件: spring-mybaits.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xm

springMVC+MyBatis+Spring 整合(4) ---解决Spring MVC 对AOP不起作用的问题

解决Spring MVC 对AOP不起作用的问题 分类: SpringMVC3x+Spring3x+MyBatis3x myibaits spring J2EE2013-11-21 11:22 640人阅读 评论(1) 收藏 举报 用的是 SSM3的框架 Spring MVC 3.1 + Spring 3.1 + Mybatis3.1第一种情况:Spring MVC 和 Spring 整合的时候,SpringMVC的springmvc.xml文件中 配置扫描包,不要包含 service的注解,S

SpringMVC与MyBatis整合之日期格式转换

在上一篇博客<SpringMVC与MyBatis整合(一)——查询人员列表>中遗留了日期格式转换的问题,在这篇记录解决过程. 对于controller形参中pojo对象,如果属性中有日期类型,需要自定义参数绑定.         将请求日期数据串传成 日期类型,要转换的日期类型和pojo中日期属性的类型保持一致. 在上一篇的示例程序中,Person类属性如下: 而测试结果如下: 所以自定义参数绑定将日期串转成java.util.Date类型.需要向处理器适配器中注入自定义的参数绑定组件. 添加

SpringMVC+Spring+Mybatis整合,使用druid连接池,声明式事务,maven配置

一直对springmvc和mybatis挺怀念的,最近想自己再搭建下框架,然后写点什么. 暂时没有整合缓存,druid也没有做ip地址的过滤.Spring的AOP简单配置了下,也还没具体弄,不知道能不能用,log也不知道能不能用,`(*∩_∩*)′哈哈,有点不负责任...... 直接上代码: 使用的eclipse和eclipse自带的maven,参考了网上的资料,有些代码是拷贝的,不过都自己测试过了.嗯,可以跑起来... 先上项目结构: 新建maven项目,选择web,然后配置pom: <pro

springmvc+spring+mybatis整合实例【转】

开发环境: System:Windows server 2003 WebBrowser:IE6+.Firefox3+ JavaEE Server:tomcat5. IDE:eclipse.MyEclipse 6.5 Database:MySQL 开发依赖库: JavaEE5.Spring 3.0.5.Mybatis 3.0.2.myBatis-spring-1.0.0-rc2 1. 首先新建一个WebProject 命名为ssi,新建项目时,使用JavaEE5的lib库.然后手动添加需要的jar

spring,springmvc,mybatis基本整合(一)--xml文件配置方式(2)

spring,springmvc,mybatis基本整合(一)–xml文件配置方式(2)之mapper接口 一,整合结构 二,所需jar包 如上图. 三,整合配置 1,web.xml文件 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://j

springMVC+Hibernate3+spring3整合实例,附带基本权限功能及CURD例子

实例说明: 1.本实例的架子是在2012年为了真实项目的开发搭建的,目前已经在此架子上做了几个中小项目.分为两个不同的版本,一个是Hibernate版本,一个是ibatis版本. 2.本实例是一个SSH的完整的架子,包括了基本的权限管理及CURD的例子.权限管理包括用户管理,菜单管理,角色管理,权限分配等.CURD的例子包括了基本的CURD以及分页功能,可以做为代码复制的例子,只专为新手学习编写的. 3..在本实例的架子上已经开发了几个中小项目,系统技术架构为springMVC+Hibernat

SSM(springmvc+spring+mybatis)整合过程

问题?SSM(springmvc+spring+mybatis)整合过程 一.SSM框架比较S2SH框架的优缺点比较 站在个人使用这两个框架的观点儿上来说的话,我觉得这个不能定死的说,常用的S2SH,SpringMVC等,还可以考虑jFinal. 首先说S2SH,这个是用的比较多的,特别是在中小型项目中,针对大型项目就不行了,是Struts和hibernate过于庞大,过于重量级,项目大了之后配置文件多的也是麻烦事,配置文件多了之后一方面不好操作,另外比较蛋疼的是没法断点调试,特别是对底层数据库

springmvc+spring+mybatis整合实例

开发环境: System:Windows server 2003 WebBrowser:IE6+.Firefox3+ JavaEE Server:tomcat5. IDE:eclipse.MyEclipse 6.5 Database:MySQL 开发依赖库: JavaEE5.Spring 3.0.5.Mybatis 3.0.2.myBatis-spring-1.0.0-rc2 参考百度文库:http://wenku.baidu.com/view/34559702a6c30c2259019e4e.