论坛首页 Java企业应用论坛

session bean生命周期事件

浏览 3218 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-10-22  

@PostConstruct :当bean对象完成实例化后,标注了这个注释的方法会立即被调用, 每个bean class只能定义一个 @PostConstruct方法,适用于有状态和无状态的会话bean

@ProDestroy :标注了这个注释的方法会在容器销毁一个无用或者过期的bean实例之前被调用,适用于有状态和无状态会话bean

@PrePassivate: 当一个有状态的bean实例空闲时间过长,就会发生钝化(passivate).标注了这个注释的方法会在被钝化之前被调用,bean实例被钝化后,在一段时间内,如果任然没有用户对bean实例进行操作,容器将会从硬盘中删除它,以后,任何针对该bean方法的调用,容器都会抛出例外,这个注释用于有状态会话bean.

@PostActivate : 当客户端再次使用已经被钝化的有状态bean时,EJB容器会重新实例化一个Bean实例,并从硬盘中将之前的状态恢复.标注了这个注释的方法会在激活完成时被调用.这个注释只适合于有状态会话bean.

@Init :这个注释指定了又状态bean初始化的方法,他区别于@PostConstruct注释在于:多个@Init注释方法可以同时存在于有状态session bean中,但每个bean实例只会有一个@Init注释方法被调用
@PostConstruct在@Init之后调用

@Remove :当客户端调用标注了@Remove注释的方法时,容器将在方法执行结束后把bean实例删除

要处理这些生命周期时间,我们可以为这些时间注册一个回调方法,回调方法可以使用任何名称,但是它必须是无返回值(void),不带参数,切不能抛出任何异常,事件注册的过程很简单,只需要在回调方法上面加上事件注释就可以

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics