-
@Documented @Retention(RUNTIME) @Target(METHOD) public @interface PreDestroy
PreDestroy注釈は、インスタンスがコンテナにより削除処理中であることを知らせるためのコールバック通知としてメソッドで使用します。 通常、PreDestroyの注釈が付いているメソッドは、保持しているリソースを解放する場合に使用します。 この注釈は、Java EE 5のアプリケーション・クライアント・コンテナを除く、PostConstructをサポートするコンテナ管理によるすべてのオブジェクトでサポートされている必要があります。 PreDestroy注釈の適用先のメソッドは、次の基準をすべて満たす必要があります。- インタセプタ仕様で定義されたようにInvocationContextオブジェクトを指定するインタセプタの場合を除き、このメソッドにはパラメータを指定してはいけません。
- インタセプタ・クラスで定義されているメソッドは、次のシグネチャのいずれかを持つ必要があります。
void <METHOD>(InvocationContext)
Object <METHOD>(InvocationContext) throws Exception
注: PreDestroyインタセプタ・メソッドはアプリケーション例外をスローしてはいけませんが、java.lang.Exceptionを含むチェック例外をスローするために宣言することはできます(ビジネスまたはタイムアウト・イベントでライフサイクル・イベントに加えてその同じインタセプタ・メソッドが介在する場合)。 PreDestroyインタセプタ・メソッドが値を返す場合、コンテナはそれを無視します。
- インタセプタではないクラスで定義されているメソッドは、次のシグネチャを持つ必要があります。
void <METHOD>()
- PreDestroyの適用先のメソッドは、public、protected、package private、またはprivateにできます。
- このメソッドをstaticにしてはいけません。
- このメソッドは、finalにできます。
- このメソッドが非チェック例外をスローした場合は、EJBで例外の処理が可能である場合を除いて、無視されます。
- 導入されたバージョン:
- 1.6, Common Annotations 1.0
- 関連項目:
PostConstruct
,Resource