13、会话 Bean 生命周期详解

会话 Bean 生命周期详解

1. 钝化与激活机制

在会话 Bean 的管理中,钝化(Passivation)是一个重要的概念。当容器通过某种算法发现某个实例处于空闲状态,等待客户端的下一次调用时,它会将该实例暂时移出内存,并把其状态(如实例变量的值等)保存到二级存储中,这个过程就是钝化。在钝化之前,容器会调用实例的 ejbPassivate() 方法。需要注意的是,处于事务中的会话 Bean 实例不能被钝化。

从被动状态出来有两种途径:一是回到方法就绪状态,二是回到不存在状态。如果客户端调用处于钝化状态的 Bean 实例的方法,容器会通过重新分配存储的值来激活该 Bean,之后调用 ejbActivate() 方法,告知实例重新初始化自身。而如果 Bean 在被动状态下超时,容器会将其放回不存在状态,且不会调用 ejbRemove() 方法,因为激活实例再移除会浪费资源。

2. 无状态会话 Bean 的生命周期

无状态会话 Bean 的生命周期相对简单,仅包含方法就绪状态和不存在状态。由于无状态会话 Bean 在方法调用之间不维护任何客户端特定信息,这使得容器可以创建特定 Bean 类型的多个实例并放入池中,这些实例都能平等地服务任何客户端的调用。

当客户端调用 Bean 的方法时,容器从池中取出任意实例来处理该调用,处理完成后实例回到池中。对于同一客户端的另一次调用,所有实例的资格是平等的,因为它们都没有与客户端保持对话状态。当需要节省内存时,容器可以选择将多个实例送入不存在状态,无需进行钝化操作,因为该 Bean 没有需要存储的客户端状态信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值