2011-12-21 4 views

答えて

27

あなたは破壊法を@ amir75が

  • @PreDestroy注釈

  • を推奨していますようDisposableBeanを実装し、destroyメソッドをオーバーライドし、次の

    1. を使用することができます。

    これらのすべてのデタイルはDisposable Callbacksにあります。

  • 6

    のSpring Beanれますが、「破棄メソッドを」属性を持っていますコンテキストを閉じるときに呼び出されます。

    <bean id="bean1" 
        destroy-method="stop" 
        class="com.example.Bean" /> 
    

    それを閉じるために、あなたは、close()メソッドを呼びたい:

    http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/support/AbstractApplicationContext.html#close%28%29

    (または単に適切な場合には、コンテナをシャットダウン)

    希望に役立つこと。

    4

    これを処理する非Springの方法は、ServletContextListenerを実装するクラスを作成し、そのcontextDestroyed mにクリーンアップします民法。 web.xmlにコンテキストリスナーとしてクラスを追加します。

    +1

    このアプローチのトラブルは、春はおそらくやっているということです同じことです。カスタムサーブレットコンテキストリスナーがSpringの前に実行されるか、Springの後に実行されるかは明白ではありません。これは人生を厄介にする可能性があります。 –

    4

    JSR-250仕様に基づいて、現代のスプリングアプリケーションで使用するベストプラクティスは@PreDestroyアノテーションです。このアプローチを使用すると、SpringからBeanが分離されるためです。

    関連する問題