ejb的生命周期

转载 2007年09月18日 13:18:00

在做企业业务继承的时候,通常利用session进行提供同步的远程过程服务.通过EAI等Q组件,实现企业级的数据总线,把应用之间的网状结构关系进行星型化..利用mdb从jms(Q)服务器上获取相应的消息服务.总之在企业信息化的过程中,基于j2ee的应用整合,ejb提供了一种良好的方法,当然你也可以选择websevice,但是在网络结构和实时处理效率上还是有很大的差别.下面详细描述以下三种ejb的生命周期,在开发中和利用他的容器回调功能,来注入和回收外部的各种资源。

1 session Bean (有状态)
有状态会话Bean实例有三种状态,不存在,就绪,和钝化。
lifetime
客户端调用home接口的create 方法,ejb容器实例化一个Bean并调用setSesssionContext

ejbCreate方法,使得Bean处于就绪状态。然后客户就可以使用其商业方法了。ejb容器对Bean的生命周期

进行管理,一般会对最少使用的EJB进行钝化,当客户在使用这个EJB时,容器会进行激活,这个过程对客

户来说是透明的。当用户调用remove方法,容器调用ejbRemove方法,ejb生命周期结束.
无状态会话Bean实例就两种状态,不存在和就绪.
lifetime

客户端调用home接口的create方法,如果不存在可用的实例.jb容器实例化一个Bean并调用

setSesssionContext ejbCreate方法.当客户调用remove方法之后,ejb容器则调用ejbRemove的方法, 
ejb生命周期结束.

2 实体bean
实体bean有三种状态,不存在,在pool中,就绪
lifetime

ejb容器创建实例时调用setEntityContext,把容器的上下文传到bean组件中.实例化之后bean

会移到池中,此时ejb没有和任何的实体对象进行关联,所有的bean实例是一样,容器会指派它和具体的

实体标示关联,进入就绪状态。有两种方法使得一个实体bean从池化进入到就绪状态,一是客户端使用

create方法,使得ejb容器调用ejbCreate and ejbPostCreate 方法,二是容器调用ejbActivate 方法,

这对客户来说是透明的,只有当实体bean处于就绪状态时,才能调用其商业方法。同样如果实体bean要从

就绪进行池化也有两种方法,一是客户端调用remove方法,容器调用ejbRemove;二是容器ejbPassivate方法。
bmp和cmp,在bean实例从池化到就绪时,对于bmp的实体bean,容器不会自动设置primary key.因此ejbCreate and ejbActivate 需要获得这个primary key ,如果这个key非法,ejbLoad and ejbStore methods 不能同步实体变量到数据库。ejbCreate 通过参数传入,ejbActivate 通过id = (String)context.getPrimaryKey();在pool状态,这些需要持久化的实体变量则不需要,在ejbPasssivate 中把它赋值null。unsetEntityContext,
bean生命周期结束的时候,调用
3 mdb 消息bean
    消息bean就两种状态:不存在和就绪
lifetime

就像sessionless session bean,容器在实例化bean的时候,调用setMessageDrivenContext,ebjCreate. 调用ejbRemove方法结束生命周期。当消息到达的时候Onmessage方法。因此可以mdb是一种jms客户端企业级组件。

 

EJB学习笔记五(SessionBean的生命周期)

1.前言 前几篇主要介绍了有状态和无状态、远程和本地调用的SessionBean,这篇介绍一下有关SessionBean的生命周期。SessionBean处于EJB容器管理之下,对于客户端来说是完全...
  • ZHOUCHAOQIANG
  • ZHOUCHAOQIANG
  • 2015年07月29日 15:22
  • 1528

会话EJB系列(三)SessionBean生命周期

EJB生命周期:指EJB在运行过程中经历的阶段和状态。 首先强调的是:SessionBean的生命周期是由容器控制的而不是应用程序!但是对于开发者而言,必须了解SessionBean在EJB中的运行规...
  • lantingxv_jing
  • lantingxv_jing
  • 2014年12月31日 15:59
  • 1581

EJB 会话Bean的生命周期

@Stateful @Remote(HelloEJBRemote.class) public class HelloEJB implements HelloEJBRemote { public...
  • sinat_25926481
  • sinat_25926481
  • 2015年09月24日 14:49
  • 3608

EJB实现简单CRUD操作和生命周期探讨

环境 MyEclipse 8.6 + JBoss 6.0 + JDK 1.6.13 + EJB 3.0   问题 EJB实现简单CRUD操作和生命周期探讨   解决   1.       配置JBos...
  • Wentasy
  • Wentasy
  • 2012年12月12日 17:01
  • 1466

EJB---->Entity 的生命周期和状态、回调函数

一、四种Entity 的状态: 1. 新实体(new)。Entity 由应用产生,和EJB3 Persistence 运行环境没有联系,也没有唯一的标示符(Identity)。 2. 持久化实体(...
  • ncepustrong
  • ncepustrong
  • 2012年05月17日 23:13
  • 853

EJB---->Session Bean 的生命周期

EJB 容器创建和管理session bean 实例,有些时候,你可能需要定制session bean 的管理过程。例如,你可能想在创 建session bean 实例的时候初始化字段变量,或在be...
  • ncepustrong
  • ncepustrong
  • 2012年05月15日 16:24
  • 554

Ejb in action(五)——会话Bean的生命周期

会话Bean与消息驱动Bean、实体Bean的最重要的区别在于生命周期的差异性。会话Bean实例存活期较短,它和线程类似,包括对象的创建、初始化、运行、钝化、激活、销毁。 生命周期的概念,了解生物学的...
  • liu765023051
  • liu765023051
  • 2014年05月14日 13:08
  • 2730

会话EJB系列(三)SessionBean生命周期

EJB生命周期:指EJB在运行过程中经历的阶段和状态。         首先强调的是:SessionBean的生命周期是由容器控制的而不是应用程序!对于客户端是完全透明的。但是对于开发者而言,必...
  • moridehuixiang
  • moridehuixiang
  • 2015年07月22日 09:11
  • 360

React生命周期.vsdx

  • 2018年01月11日 11:44
  • 57KB
  • 下载

fragment与activity 生命周期演示

  • 2018年01月05日 13:12
  • 16.97MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ejb的生命周期
举报原因:
原因补充:

(最多只允许输入30个字)