用本地引用提高EJB访问效率之一

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

用本地引用提高EJB访问效率

EJB 1.0和1.1规范只定义了一种在EJB组件中引用另一组件的方法,即通过Bean的远程接口。假如两个Bean都在同一个容器之内,则这种网络开销是不必要的。为解决这个问题,EJB 2.0规范定义了一种新的EJB引用类型,即本地引用。

一、两种引用类型

为了从其他EJB组件访问某个Bean,容器提供了一种非凡的机制。这种机制答应一个Bean提供者通过称为EJB引用的“逻辑名字”引用另一个EJB的Home。EJB容器利用应用的部署描述器为EJB构造环境,而这些引用在部署描述器中作为非凡的项目声明。在部署描述器中,部署者把组件代码中要用到的EJB引用绑定到其他被引用EJB的Home。

如前所述,在EJB 2.0规范出现之前,在一个EJB中引用其他Bean只有一种方法,即通过远程接口,它要求进行跨越网络的远程过程调用。假如某个事务由多个Bean协作完成,通过网络进行多个对象的汇集和释放将是一项相当繁重的工作。

EJB 2.0规范新增了一种本地接口类型,答应在同一容器之内的Bean直接互相引用,避免了远程接口的网络开销。本地接口是一种标准的java接口,而不是从RMI继续得到。EJB组件的定义可以包含本地接口或远程接口,或者两者都定义。

本地引用的指定方式和传统的远程引用一样,即在部署描述器中指定。事实上,本地引用的部署描述元素与远程引用的描述元素完全对应。

下面的代码片断是一个典型的远程引用:

PRodUCt

ejb/Product

Entity

com.xyz.widgets.ProductHome

com.xyz.widgets.Product

../products/product.jar#Product

下面的代码片断是同一Bean的本地引用:

Product

ejb/Product

Entity

com.xyz.widgets.ProductHome

com.xyz.widgets.Product

../products/product.jar#Product

下表简要说明了各个元素的用途:

进入讨论组讨论。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航