EJB3.0学习笔记之二 Session Bean的生命周期

EJB容器创建和管理session bean实例。有些时候可能需要定制session bean的管理过程.例如想在创建session bean实例的时候初始化字段变量,或在bean实例被销毁的时候关掉外部资源.上述这些都可能通过在bean类中定义生命周期的回调方法来实现.这 些方法将会被容器在生命周期的不同阶段调用(如:创建或销毁时).通过使有下面所列的注释,EJB 3.0允许你将任何方法指定为回调方法.EJB 3.0中,bean可以有任意数量,任意名字的回调方法.

@PostConstruct: 这个annotation标注的方法会在容器完成依赖注入之后,第一个业务方法调用之前被调用。这个注释同时适用于有状态和无状态的会话bean.

・@PreDestroy:使用这个注释的方法会在容器从它的对象池中销毁一个无用的或者过期的bean实例之前调用.这个注释同时适用于有状态和无状态的会话bean.

・@PrePassivate:当一个有状态的session bean实例空闲过长的时间,容器将会钝化(passivate)它,并把它的状态保存在缓存当中.使用这个注释的方法会在容器钝化bean实例之前调 用.这个注释适用于有状态的会话bean.

・@PostActivate:当客户端再次使用已经被钝化的有状态session bean时,新的实例被创建,状态被恢复.使用此注释的session bean会在bean的激活完成时调用.这个注释只适用于有状态的会话bean.

・@Init:这个注释指定了有状态session bean初始化的方法.它区别于@PostConstruct注释在于:多个@Init注释方法可以同时存在于有状态session bean 中,但每个bean实例只会有一个@Init注释的方法会被调用.这取决于bean是如何创建的(细节请看EJB 3.0规范)

.@PostConstruct在@Init之后被调用.

另一个有用的生命周期方法注释是@Remove,特别是对于有状态session bean.当应用通过存根对象调用使用了@Remove注释的方法时,容器就知道在该方法执行完毕后,要把bean实例从对象池中移走. 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值