Beanが「プロトタイプ」としてスコープされている場合のSpringのドキュメントによると、スプリングはそのオブジェクトの完全なライフサイクルを管理しません。より具体的には、破棄ライフサイクルコールバックは呼び出されません。クライアントコードは、必要なクリーンアップを実行する必要があります。 Springのドキュメントでは、この目的のためにカスタムBeanポストプロセッサを使用することも示唆しています。しかし、 "BeanPostProcessor"インタフェースには、Beanの初期化前後のコールバックメソッドしか含まれていません。解読コールバックの方法はありません。プロトタイプスコープのBeanで取得したリソースをどこでどのように解放するのですか?Spring:プロトタイプスコープのBeanをきれいに終了するには?
10
A
答えて
4
あなたが探しているのは、DestructionAwareBeanPostProcessorです。これは、BeanPostProcessorのサブインターフェースです。
あなた自身でそのインターフェイスの新しい実装を作成するか、CommonAnnotationBeanProcessorのような実装クラスを使用することができます。
1
プロトタイプスコープのBeanを終了させる唯一の方法は、明示的にリソースを破棄するいくつかの「破棄」メソッドを呼び出すことです。 Phantom Referencesも使用できます。 Hereはさまざまなタイプの参照に関する詳細です。
関連する問題
- 1. 注釈付きのプロトタイプスコープのSpring Beanを作成しますか?
- 2. Spring Beanのプロトタイプスコープを適用する方法
- 3. @PredestroyはプロトタイプスコープのBeanでいつ呼び出されますか?
- 4. Spring - プロトタイプスコープのBeanを破壊するにはどうしたらいいですか?
- 5. Spring JavaconfigでプロトタイプスコープBeanを作成できますか?春Javaconfigため
- 6. 条件付きアノテーションを持つプロトタイプスコープのあるbean
- 7. Java Bean - プロトタイプスコープで同じオブジェクトが必要
- 8. ビュースコープ付きBeanでスレッドを終了するにはどうすればよいですか?
- 9. spring jdbcでデータソースをプロトタイプスコープにする必要があります
- 10. Beanの注入に失敗した場合、SpringブートWebアプリケーションの終了を非ゼロにする方法
- 11. child_processが終了しないときに終了する
- 12. Golang:select文が終了しないときに終了する
- 13. codeigniterセッションが終了しないときに終了する
- 14. beanメソッドの終了後にjavascript関数を呼び出す
- 15. Springブートと@GetMappingでサービスを終了するには
- 16. 関数の終了後にアニメーションを終了するには
- 17. 終了時にアプリケーションを終了する
- 18. 終了時にプロセスを終了する
- 19. プロセスは終了コード1で終了しました。SpringブートIntellij
- 20. 背景のPythonスクリプトをきれいに終了する
- 21. 要求終了時にキャッシュを無効にするSpring
- 22. Pythonはきれいにクラスループを終了します
- 23. jquery.jmslideshow.js終了するにはどうすれば終了するのですか
- 24. Spring/Hibernateのテスト - 終了時にスキーマを削除する方法?
- 25. Spring Propagation.REQUIRES_NEW @トランザクションコミットは、トランザクション終了後にのみログに表示されます
- 26. ユーザーが終了したいときにbashスクリプトからSTDINを終了する
- 27. unity 5 coルーチンが終了したときに終了する
- 28. ルアスレッドをきれいに終了できますか?
- 29. アプリケーションセッションが終了または終了するたびに終了する
- 30. アプリが終了したときにアプリが終了しない
@Raihanこれが正しいかどうかわかりません。この文書はSingletonsにのみ適用されるとしています。プロトタイプBeanがスコープ外に出る時期をSpringがどのように知るのだろうか?このインタフェースとその具体的なメソッドの詳細については、http://static.springsource.org/spring/docs/3.0.x/javadoc-api/を参照してください。 – shrini1000