私の春のWebアプリケーションがシャットダウンしたとき、私はいくつかのプールなどを空にするために、いくつかのクリーンアップコードを実行できることを何とかしwireupできるイベントがあるスプリングはクリーンアップコードを入れるシャットダウンプロセスを持っていますか?
16
A
答えて
27
あなたは破壊法を@ amir75が
を推奨していますようDisposableBeanを実装し、destroyメソッドをオーバーライドし、次の
を使用することができます。
これらのすべてのデタイルはDisposable Callbacksにあります。
6
のSpring Beanれますが、「破棄メソッドを」属性を持っていますコンテキストを閉じるときに呼び出されます。
<bean id="bean1"
destroy-method="stop"
class="com.example.Bean" />
それを閉じるために、あなたは、close()メソッドを呼びたい:
(または単に適切な場合には、コンテナをシャットダウン)
希望に役立つこと。
4
これを処理する非Springの方法は、ServletContextListener
を実装するクラスを作成し、そのcontextDestroyed
mにクリーンアップします民法。 web.xmlにコンテキストリスナーとしてクラスを追加します。
4
JSR-250仕様に基づいて、現代のスプリングアプリケーションで使用するベストプラクティスは@PreDestroy
アノテーションです。このアプローチを使用すると、SpringからBeanが分離されるためです。
1
は春ブーツlogbackプロジェクト例によると、あなたはロギングシステムをクリーンアップするためにコンテキストを閉じる必要があります:https://github.com/spring-projects/spring-boot/commit/10402a651f1ee51704b58985c7ef33619df2c110
例:
public static void main(String[] args) throws Exception {
SpringApplication.run(SampleLogbackApplication.class, args).close();
}
関連する問題
- 1. UIViewControllerにクリーンアップコードを入れる場所は?
- 2. @Configurable(dependencyCheck =真)私は、次のコードを持っているスプリング
- 3. 私は出力を持っているが、スプリングMVC
- 4. スプリングJPA私は私のモデルでoneToManyとManyToOneマッピングを持っている
- 5. 入れ子の例外は、私は私のプロジェクトで春ブーツと、スプリングのデータを使用していると私は2つのクラスを持っているjavax.persistence.EntityNotFoundException
- 6. マングースソートサブドキュメントは、私が移入される必要があるパスを持っているマングースモデルを持っている
- 7. angularJsを持つスプリング
- 8. Djangoクリーンアップコード
- 9. マッパを挿入するためにスプリングを使用すると、mybatisセッションはいつ開かれますか?
- 10. 私はドロップダウンメニューに入れたい時間のリストを持っています
- 11. 私は私のサイトに入れたいOVGビデオを持っています
- 12. は、入力が値を持っているかどう
- 13. ハゼルキャストがスプリングの依存性を注入していません
- 14. 入力が値を持っているかどうかjQueryライブチェック
- 15. VB.net - RsData /クリーンアップコード
- 16. Emberコンポーネントのクリーンアップコード
- 17. XMLノード名クリーンアップコード
- 18. スプリングは内部的にサーブレットを使用していますか?
- 19. チェックレコードは、私は、ダイナミック入力フォームを持っているLaravel 5.5
- 20. は、私は次のXML入力を持っているXSLT
- 21. は、私はこのクラスを持っているユーザー入力
- 22. fftwf_execute_dft_c2rは、私は次のコードを持っている入力バッファ
- 23. 私はワードプレスミューを持っていて、それは約32000のテーブルを持っています
- 24. スプリングでアノテーションされたメンバーを持つジャーナルエンドポイントをテストする@Value
- 25. は、入力が、私はこれを持っている正規表現とjQuery
- 26. は、私は、これはオブジェクト参照とは何かを持っているかもしれないという気持ちを持って
- 27. データが入っていないVARCHAR(32)を持っている場合は、スペースが必要ですか?
- 28. Firebirdは「グループコミット」を持っています
- 29. modalpopupextenderはelement.styleを持っています
- 30. 私はログインフォームを持っています
このアプローチのトラブルは、春はおそらくやっているということです同じことです。カスタムサーブレットコンテキストリスナーがSpringの前に実行されるか、Springの後に実行されるかは明白ではありません。これは人生を厄介にする可能性があります。 –