パッケージ jakarta.annotation
アノテーション型 PreDestroy
@DocumentedSE @RetentionSE(RUNTIMESE) @TargetSE(METHODSE) public @interface PreDestroy
PreDestroy
アノテーションは、インスタンスがコンテナーによって削除されている最中であることを通知するコールバック通知としてメソッドで使用されます。PreDestroy
アノテーションが付けられたメソッドは、通常、保持していたリソースを解放するために使用されます。このアノテーションは、Jakarta EE アプリケーションクライアントを除いて、PostConstruct
アノテーションの使用をサポートするすべてのコンテナー管理オブジェクトによってサポートされる必要があります。PreDestroy
アノテーションが適用されるメソッドは、以下の条件をすべて満たしている必要があります。- メソッドは、インターセプターの場合を除いて、パラメーターを持ってはなりません。インターセプターの場合、Jakarta Interceptors 仕様で定義されている
InvocationContext
オブジェクトを取ります。 - インターセプタークラスまたはインターセプタークラスのスーパークラスで定義されたメソッドには、次のいずれかのシグネチャーが必要です。
void< METHOD>(InvocationContext)
オブジェクト < METHOD>(InvocationContext)が例外をスローします
メモ: PreDestroy インターセプターメソッドはアプリケーション例外をスローすることはできませんが、ライフサイクルイベントに加えて同じインターセプターメソッドがビジネスメソッドまたはタイムアウトメソッドに介入する場合は、java.lang.Exception を含むチェック例外をスローするように宣言できます。PreDestroy インターセプターメソッドが値を返す場合、その値はコンテナーによって無視されます。
- 非インターセプタークラスで定義されたメソッドには、次のシグネチャーが必要です。
void< METHOD>()
- PreDestroy が適用されるメソッドは、public、protected、package private、private のいずれかです。
- メソッドは静的であってはなりません。
- メソッドは final であってはなりません。
- メソッドが未チェックの例外をスローした場合、コンテナーによって無視されます。
- 導入:
- 1.6、共通のアノテーション 1.0
- 関連事項:
PostConstruct
,Resource
- メソッドは、インターセプターの場合を除いて、パラメーターを持ってはなりません。インターセプターの場合、Jakarta Interceptors 仕様で定義されている