基于Spring和EJB的JCF通用调用框架的研究与实现(2)

  1.       JCF 介绍 <o:p></o:p>
31 两种打包部署方式 <o:p></o:p>
本框架提供两种部署方式。采用 ant 来编译,打包会分成三部分,一个是 ear 包,包括了后台所有的依赖包和代码,一个是客户端用的 jar,*client.jar 来标识,客户端引用此 jar 包就可以远程访问后台业务逻辑的入 BizDelegate ;另外一种部署方式是将后台所有的代码打包到一个 jar 包中,以 *server.jar 来标识,客户端直接引入此 jar 包和 Spring 的配置文件以及相关的依赖包就可以绕开 EJB 直接调有后台的业务逻辑。第一种部署方式在方法的调用链中有一个 SLSB ,后台必须要部署在 EJB 容器中,如 WebSphereWeblogicJboss 等。第二种部署方式绕过了 SLSB ,系统可以在非 EJB 容器中运行,如 TomcatResin 等。
Spring 的配置文件中做如下配置:

     < bean id = " BizDelegate" class = "com.gsta.bnet.bizservice.BizDelegate" > <o:p></o:p>
    < property name = "delegate" > <o:p></o:p>
          < ref bean = "POJODelegate" /> <o:p></o:p>
    </ property > <o:p></o:p>
</ bean ><o:p></o:p>
    < bean id = "POJODelegate" <o:p></o:p>
         class = "com.gsta.bnet.bizservice.POJODelegate" > <o:p></o:p>
    </ bean > <o:p></o:p>
    < bean id = "EjbDelegate" <o:p></o:p>
         class = "com.gsta.bnet.bizservice.EjbDelegate" > <o:p></o:p>
  </ bean >

<o:p> </o:p>
BizDelegate 所注入的 ref bean 指向 EjbDelegate 的时候,前台是通过远程 EJB 的方式来调用后台程序的,这种方式适合前台和后台分离的情况。当 BizDelegate 所注入的 ref bean 指向 POJODelegate 的时候,前台是通过非 EJB 方式来访问后台的。 BizDelegate 继承抽象类 AbstractBizDelegateAbstractBizDelegate 非常简单,根据配置文件的不同,利用 Spring 的设值注入功能,将不同的 Delegate 注入到 AbstractBizDelegate 中,前台在调用 getDelegate 方法时就会调用不同的 Delegateinit 方法是要执行一些系统初始化的数据,用 EJB 方式要得到一个 Session BeanHome 接口, SpringApplicationContext 初始化放到了 Session Bean 中。用非 EJB 方式就要初始化 SpringApplicationContext 并保存于一个 ServiceLocator 类中。 AbstractBizDelegate 的关键代码如下: <o:p></o:p>

    private DelegateType delegate ; <o:p></o:p>
    public void setDelegate(DelegateType delegate) { <o:p></o:p>
       this . delegate = delegate; <o:p></o:p>
    } <o:p></o:p>
    public DelegateType getDelegate() { <o:p></o:p>
       return delegate ; <o:p></o:p>
    } <o:p></o:p>
    public synchronized boolean init(String jndiName) <o:p></o:p>
    { <o:p></o:p>
       return delegate .init(jndiName); <o:p></o:p>
    }

<o:p> </o:p>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值