-
@Documented @Retention(RUNTIME) @Target(METHOD) public @interface PreDestroy
PreDestroy注释在方法上用作回调通知,表明实例正在被容器移除。 通过PreDestroy注释的方法通常用于释放其持有的资源。 除了Java EE 5中的应用程序客户端容器之外,所有支持PostConstruct的容器管理对象必须支持此注释。应用PreDestroy注释的方法必须满足以下所有条件:- 除了拦截器的情况下,该方法必须不具有任何参数,在这种情况下,它将接受由Interceptor规范定义的InvocationContext对象。
- 在拦截器类上定义的方法必须具有以下签名之一:
void <METHOD>(InvocationContext)
Object <METHOD>(InvocationContext)抛出异常
注意:PreDestroy拦截器方法不能抛出应用程序异常,但是除了生命周期事件之外,如果相同的拦截器方法在业务或超时方法上插入,则可能会声明抛出检查的异常,包括java.lang.Exception。 如果PreDestroy拦截器方法返回一个值,容器将被忽略。
- 在非拦截器类上定义的方法必须具有以下签名:
void <METHOD>()
- PreDestroy应用的方法可能是公共的,受保护的,私有的或私有的。
- 该方法不能是静态的。
- 该方法可能是最终的。
- 如果该方法抛出未经检查的异常,则忽略它,除非EJB可以处理异常的EJB。
- 从以下版本开始:
- 1.6,通用注释1.0
- 另请参见:
-
PostConstruct
,Resource