2

セッション スコープ Bean の Web アプリ内のユーザーのアクションのコンテキストで保留中の実行リストを保存し、セッションの最後に@Predestroyアノテーション付きメソッドを介してそれらのアクションを確実に実行することは安全ですか (つまり、メソッドが呼び出されないコンテキストでの安全性@predestroy&したがって、何らかの状況でアクションが実行されないなど!?)。

4

2 に答える 2

0

保留中の実行または DB コミットを @preDestroy メソッドに保存することは完全に安全です。この状態では、マネージド Bean は破棄されません。したがって、マネージド Bean の状態は、Bean 内の通常のメソッド呼び出しと同じになります。以下のドキュメントを参照してください。

http://docs.oracle.com/javaee/6/tutorial/doc/gmgkd.html#gmgghg

@PreDestroy アノテーションを使用してマネージド Bean の破棄を準備するには マネージド Bean の破棄の準備では、アプリケーション コンポーネントがコンテナによって破棄されようとしていることを通知するライフサイクル コールバック メソッドを指定します。

マネージド Bean クラスまたはそのスーパークラスのいずれかで、マネージド Bean の破棄を準備します。このメソッドでは、Bean が保持していたリソースを解放するなど、Bean が破棄される前に必要なクリーンアップを実行します。

メソッドの宣言に javax.annotation.PreDestroy アノテーションを付けます。CDI は、Bean の破棄を開始する前にこのメソッドを呼び出します。」

于 2017-02-28T07:31:36.150 に答える