DBから特定の変数にデータを読み込み、アプリケーションの存続期間中にそのデータを更新する静的初期化ブロック&定期的な間隔でDBに保存しますが、予期せず/ suddently破棄/ undeployed私は、DBの変数の現在の状態を書き戻したい。アプリケーションが破壊/展開されたときに実行
Javaの破壊トリガでこれを実装するにはどうすればよいですか?
編集:
@PreDestroy
注釈については、それは私の場合のために有用である可能性は?
DBから特定の変数にデータを読み込み、アプリケーションの存続期間中にそのデータを更新する静的初期化ブロック&定期的な間隔でDBに保存しますが、予期せず/ suddently破棄/ undeployed私は、DBの変数の現在の状態を書き戻したい。アプリケーションが破壊/展開されたときに実行
Javaの破壊トリガでこれを実装するにはどうすればよいですか?
@PreDestroy
注釈については、それは私の場合のために有用である可能性は?
これはWebアプリケーションであると仮定すると、ServletContextListener
を実装して登録することができます。そのcontextInitialized
メソッドは、デプロイ時に一度呼び出され、contextDestroyed
はアンデプロイメント時に一度呼び出されます。
ただし、コンテナが異常終了した場合でも、contextDestroyed
はまだ実行される可能性がありません。
1つを設定する例については、this pageを参照してください。
はい、これはwebappですが、私はクラス内の静的初期化ブロック内でinitization/intial readを行っていたので、可能ならば同じクラス内でondestroyを起動できればいいと思っていました。 –
クラスのロード/アンロードに基づいて起動/シャットダウンロジックを実行することは、あまり予測できないようです。クラスをアンロードすることができますが、私はこれについて質問することはできません。 –
ポールありがとう! –
'finalize()'メソッドがこの目的に役立つかどうかは知っていますか?長所短所 ? – jambriz