2009-07-15 39 views
0

我有一個運行JVM的Web服務器應用程序,我在其中管理類加載器。 我的應用程序有一個帶週期時間任務的單例。在重新部署期間,我清理所有對類的引用。 我看起來像我的單身人士與timerTask不會死。 我使用print添加了一個finalize方法。 finalize方法從來沒有調用過。 任何解決方案?用計時器任務重新部署一個單身人員

+0

爲什麼不只是讓服務器來管理呢? – 2009-07-15 13:59:08

回答

4

看看Servlet lifecycle。你的servlet可以實現destroy(),它會在卸載時被調用。用來關掉定時器等。

請注意,你可以從來沒有依靠finalize()被調用。

0

這些東西用Spring和Quartz都容易得多。在Spring中,您可以將Bean定義爲singleton(與單例設計模式不完全相同,但它將滿足您的需求)。另外Quartz比TimerTask更強大/靈活/易於使用。

春天會照顧你的重新部署問題。你只需要定義一個銷燬方法。