EJB之会话Bean实体Bean.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
会话bean生命周期 有状态的 客户(create)Home桩 Home桩(create)Home对象 Home对象(建立)EJBObject对象 Home对象通过容器(“服务”)建立bean Home对象把EJBObject对象桩返回给客户 客户在EJBObject对象桩上调用业务方法 EJBObject对象得到业务方法调用 容器介入,在bean上调用相应的业务方法 有状态的会话bean特殊时刻: bean创建(客户需要一个bean时) bean使用(客户调用一个业务方法时) bean钝化(为节省资源,以某种方式让bean“休息”) bean激活(唤醒bean,以使bean提供业务方法服务) bean删除(客户用完bean时,或超时) 无状态的会话bean特殊时刻: bean创建(容器需要创建一个bean时) bean使用(客户调用一个业务方法时) bean删除(容器认为池里面的bean太多时) 容器回调: 出现一个特殊时刻,bean不知道,容器调用了bean的一个容器回调方法时它才知道。容器回调出自两个接口中的方法。 XHome { create( ) } //home接口 SessionBean //SessionBean接口 { setSessionContext(SessionContext sc) ejbActivate( ) ejbPassivate( ) ejbRomove( ) } XBean { ejbCreate( ) setSessionContext(SessionContext sc) ejbActivate( ) ejbPassivate( ) ejbRomove( ) //组件接口中的业务方法,不是容器回调函数 } 实现容器回调函数 可以为空代码 一般需要保留context,典型方法如下: public class XBean implements SessionBean { private SessionContext context; //实例变量 private String name //其它实例变量 public setSessionContext(SessionContext ctx) { context = ctx; } public void ejbCreate(String aName) { name = aName; } // 业务方法,不能以ejb开头 如上所示,一般需要实现若干create方法. 容器回调发生时刻: bean的状态划分: “不存在”:不具备真正bean所需要的性质 “就绪”:正在执行或等待执行一个业务方法 “钝化”:临时保存在辅存中,以节省资源 (下面编号不代表顺序) “不存在”-“就绪” 依次调用构造函数、setSessionContext、ejbCreate “就绪”-“不存在” ejbRemove或超时 “就绪”-“钝化” ejbActivate “钝化”-“就绪” ejbPassivate “钝化”-“不存在” 超时 -“不存在” bean抛出系统异常(非受查、未捕获) 备注:bean从一个对象变成bean时发生的事情 在调用构造函数之前,可理解为:bean连一般的对象都不是,而执行完构造函数之后,至少已经是一个对象了。 SessionContext是bean到容器的唯一生命线,利用它,bean等得到很多信息,包括:bean的home的引用、EJBObject对象的引用、有关客户的安全信息、要求一个事务回滚、确定事务是否回滚、得到一个事务引用,并在上面调用方法。 每个bean都有它自己特有的JNDI上下文,通过它,bean可以找到很多东西,包括:资源管理连接工厂的引用、其它bean的引用、一些部署时的常量值、一个表示JMS目标的“受管对象”资源。 可以访问其它bean和资源(如:数据库)。 在业务方法中可以通过上下文访问相关信息。 有状态会话bean创建过程: 客户在home桩上调用create 容器建立EJBObject对象和SessionContext对象 容器构造bean实例(构造函数,Java对象) 容器把bean实例、SessionContext对象、EJBObjectdu对象连接起来,此过程通过在bean实例上调用setSessionContext和ejbCreate。一旦调用完毕,bean实例便称为真正bean,到“就绪”状态. 备注: 编写与创建相关的三个函数 构造函数建议为空,可使用自动生成的;用实例变量保存上下文;所有初始化代码放在ejbCreate中,其返回值类型为void,而对应在home接口中create的

文档评论(0)

dashewan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档