2012-03-30 11 views
1

DBから特定の変数にデータを読み込み、アプリケーションの存続期間中にそのデータを更新する静的初期化ブロック&定期的な間隔でDBに保存しますが、予期せず/ suddently破棄/ undeployed私は、DBの変数の現在の状態を書き戻したい。アプリケーションが破壊/展開されたときに実行

Javaの破壊トリガでこれを実装するにはどうすればよいですか?


編集:

@PreDestroy注釈については、それは私の場合のために有用である可能性は?

+0

'finalize()'メソッドがこの目的に役立つかどうかは知っていますか?長所短所 ? – jambriz

答えて

2

これはWebアプリケーションであると仮定すると、ServletContextListenerを実装して登録することができます。そのcontextInitializedメソッドは、デプロイ時に一度呼び出され、contextDestroyedはアンデプロイメント時に一度呼び出されます。

ただし、コンテナが異常終了した場合でも、contextDestroyedはまだ実行される可能性がありません。

1つを設定する例については、this pageを参照してください。

+0

はい、これはwebappですが、私はクラス内の静的初期化ブロック内でinitization/intial readを行っていたので、可能ならば同じクラス内でondestroyを起動できればいいと思っていました。 –

+0

クラスのロード/アンロードに基づいて起動/シャットダウンロジックを実行することは、あまり予測できないようです。クラスをアンロードすることができますが、私はこれについて質問することはできません。 –

+0

ポールありがとう! –

関連する問題