当前位置:七道奇文章资讯编程技术Java编程
日期:2011-01-26 02:54:00  来源:本站整理

<b>EJB 编程模子</b>[Java编程]

赞助商链接



  本文“<b>EJB 编程模子</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

  成立 Enterprise JavaBean 组件所需的 Java 接口和类的作用.除了对 bean 类本身举行编码外,EJB 开辟人员还必须为 bean 定义一个本地接口和一个远程接口.这些接口的实现类普通由容器生成,因此布置 EJB 组件是开辟人员和 EJB 容器的合作行为.第二部份还辨别了 enterprise bean 的两种主要范例,即会话 bean 和实体 bean,并阐明了 EJB 容器和 EJB 服务器之间的关系.

  enterprise bean 的编程模子的三个关键特点是:面向对象、对象的分布式和利用代理对象.由于此编程模子利用 Java 技术,因此它在本质上就是面向对象的.此模子也是分布式的,这是指 bean 在理论上是位置透明的.按照 Enterprise JavaBeans (EJB) 标准,"普通说来,EJB 类和 EJB 容器的实际位置对客户机是透明的."在客户机想要拜候 EJB 组件时利用代理对象.bean 本身关于客户机是不可拜候的,对 bean 办法的拜候则由 helper 类供应.

  接口、拜托和代理

  当 Java 程序员编写一个 Enterprise JavaBeans 组件时,他们所成立的类必须实现一个 EJB 接口,并且它必须包含一个名为 ejbCreate() 的办法.一个 EJB 接口 -- 比方 SessionBean 接口 -- 指定了一些办法,它们包含以下各项:

  ejbActivate()

  ejbPassivate()

  ejbRemove()

  setSessionContext()

  ejbActivate() 和 ejbPassivate() 办法告诉一个 bean,管理该 bean 的容器组件正在主动和被动之间切换 bean 的状况(这普通是指在内存中还是交换到磁盘). ejbRemove() 办法使 bean 知道它已被安闲器中删除. setSessionContext() 办法使 bean 与一个上下文对象相关联,此上下文对象是为了便于 bean 与其容器举行通信.

  ejbCreate() 办法并非从零做起成立 enterprise bean 的.当客户机想要成立新的 enterprise bean 时,bean 的容器将调用这个 bean 的类的 newInstance() 办法,来实例化新的 bean 对象.然后容器调用 setSessionContext() 办法来成立上下文对象,用于与 bean 举行通信.最后,容器调用新 bean 中的 ejbCreate() 办法.像 ejbCreate() 、 ejbActivate() 和 ejbPassivate() 这样的办法有时称为 对象生存周期办法,以辨别于 业务逻辑办法.

  当开辟人员计划一个新的 EJB 组件时,编写构成 enterprise bean 类的代码本身是不够的.EJB 程序员还必须编写两个将由 helper 类利用的 Java 接口.这些强迫性接口必须扩大尺度的 EJBObject 和 EJBHome 接口,而这两个接口则都是 java.rmi.Remote marker 接口的扩大.扩大尺度 EJBObject 接口的接口被称为 enterprise bean 的 远程接口,它指定在 bean 自身中定义的业务办法.当利用程序调用 enterprise bean 中的业务办法时,利用程序并不拜候 bean 本身.实际上,办法调用被传送给实现 EJBObject 接口扩大的那个对象.这种做法称为 拜托,它是 EJB 体系构造中的一个计划要点:

  "客户机历来不直接拜候 enterprise bean类的实例.客户机老是利用 enterprise bean 的远程接口来拜候enterprise bean 的实例.实现 enterprise bean的远程接口的类由容器供应.此类所实现的分布式对象称为 EJB对象."( Enterprise JavaBeans Specification1.0)

  bean 对 EJBObject 接口的扩大称为其 远程接口,而实现远程接口的对象则称为 EJB 对象.

  enterprise bean 还必须具有本地接口.此接口是尺度 EJBHome 接口的扩大.实现 bean 的本地接口的对象称为 本地对象.本地对象包含一个 create() 办法,此办法由利用程序调用,而利用程序则必须成立一个 bean 实例.本地对象中的 create() 办法成立一个新的 EJB 对象.它并不直接成立新的 enterprise bean 实例,因为不答应直接拜候 bean.

  EJB 对象和本地对象充当 bean 对象的代理,因为它们代表 bean 接纳办法调用.EJB 对象主要为 bean 业务办法充现代理;本地对象主要为 bean 生存周期办法充现代理.

  为 EJB 组件利用 create() 办法并不一定要实例化新的 bean.容器肯定若何最好地满意成立恳求,关于某些范例的 bean,它可以重用现有的实例:

  "客户机利用会话 bean 本地接口上的 create和 remove 办法.固然客户机认为它正在掌握着 EJB实例的生存周期,但是,是容器在处理 create和 remove调用,而不一定要成立和删除 EJB实例.在客户机和...实例之间不存在固定的映射.容器只是将客户机的工作拜托给任何一个办法已经就绪的可用实例罢了."( Enterprise JavaBeans Specification 1.0)

  成立新的 bean 实例受容器的掌握,并可以与客户机公布 create() 办法异步.

  当成立一个 EJB 组件时,开辟人员负责定义 EJBObject 接口和 EJBHome 接口,但是无需编写实现这些接口的类的代码.EJB 容器软件组件自动成立这些类.

  下面的代码段阐明客户机利用程序大概怎样利用称为 CartBean 的 enterprise bean 来举行在线购物:

1 CartHome cartHome = javax.rmi.PortableRemoteObject.narrow(
2 initialContext.lookup("applications/shopping_cart"), CartHome.class);
3 Cart cart = cartHome.create();
4 cart.addItem(item29);
5 cart.addItem(item67);
6 cart.addItem(item91);
7 cart.purchase();
8 cart.remove();
9

  CartHome 是实现本地接口的类(EJBHome 接口的扩大). Cart 是实现远程接口的类(EJBObject 接口的扩大).当客户机调用利用程序办法(如 addItem() 和 purchase() )时,它们是在 cart 对象上调用的,此对象接着将这些办法的履行拜托给 bean 自身.enterprise bean 的功效是通过其代理 EJB 对象(即 cart)来得到的.假如多台客户机同时拜候 cart bean,将会发生什么事情呢?Enterprise bean 开辟人员无需编写代码来支持并发拜候.并发性由 EJB 容器支持.

  下图阐明各 EJB 对象之间的关系:

  服务器和容器

  EJB 体系构造包含 EJB 服务器和 EJB 容器两个概念.EJB 服务器充当一种组件履行系统,正如 EJB 白皮书中所述:

  "Enterprise JavaBeans 标准为每个支持完好可移植性的Java利用程序服务器定义了一个尺度模子.任何厂商都可以利用此模子来实现对Enterprise JavaBeans 组件的支持.多种系统(如 TP 监督器、CORBA运行时系统、COM 运行时系统、数据库系统、Web服务器系统或别的基于服务器的运行时系统)都可以调整到可以支持可移植的Enterprise JavaBeans 组件."(Thomas, Enterprise JavaBeans Technology: Server Component Model for the JavaPlatform)

  EJB 服务器为利用 EJB 组件的利用程序供应操作环境,并供应全部必须的服务,来支持 EJB 体系构造.打包 EJB 服务器软件并没有预先规定的方法.一种办法是将它作为一项功效加强包含到利用程序服务器中,这就是在 IBM WebSphere Application Server, Advanced Edition, Version 2.0 中采取的办法.

  EJB 组件并不在 EJB 服务器的顶部直接履行.一个称为 EJB 容器的中间软件组件在 EJB 服务器环境中运行,从而又为这些 bean 自身供应操作环境.EJB 容器对 EJB 利用程序是完好透明的,但是在支持 bean 操作方面起着关键性的作用.

  为了使 enterprise bean 能充当可重用的软件组件,它们对特定的服务器或平台功效不能有内建的相关性.服务器端功效的几种常见范例已经被从 bean 计划中"别离出去",而将此功效的责任转移给了容器组件.比方,容器将被用来接纳安全性、并发性、事件处理、交换到帮助存储器和别的服务的责任,从而使 bean 免受服务器相关性的制约,并将按业务逻辑来优化,而不是按服务逻辑来优化.

  EJB 白皮书这样描写容器的作用:

  "EJB 容器管理布置于此中的 enterprise bean.客户机利用程序并不直接与 enterprise bean举行交互.相反,客户机利用程序通过由容器生成的两个封装接口( EJB Home 接口和 EJB Object 接口)与 enterprise bean举行交互.当客户机利用封装接口调用各种操作时,容器截获每个办法调用,并插入管理服务."(Thomas, Enterprise JavaBeans Technology: Server Component Model for the Java Platform)

  可以盼望 EJB 容器软件普通城市随 EJB 服务器软件一同供应,固然标准答应别离这些组件.除了供应对运行时服务(如事件处理和安全性)的拜候以外,还盼望 EJB 容器包含各种必要工具,来支持 enterprise bean 的安装、操作和管理.比方,需求有工具注释 EJB jar 文件的内容,有工具生成数据库拜候,来得到容器供应的长期性,有工具监督正在运行的 bean 的行为,以及实现安全性等.


  以上是“<b>EJB 编程模子</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .