服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

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

用本地引用提高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



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

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


扫描关注微信公众号