2011-11-16 55 views
10

根據Spring文檔,當一個bean的作用範圍爲「原型」時,spring不管理其對象的整個生命週期。更具體地說,不調用銷燬生命週期回調。客戶端代碼必須執行所需的清理。春季文檔還建議爲此使用自定義bean後期處理器。但是「BeanPostProcessor」接口僅包含用於bean初始化之前和之後的回調方法。沒有用於解析回調的方法。那麼在哪裏以及如何釋放原型範圍的bean所獲得的資源?Spring:如何幹淨地終止原型範圍的bean?

回答

4

您正在尋找的是DestructionAwareBeanPostProcessor,它是BeanPostProcessor的子接口。

您可以自己創建該接口的新實現,或者使用其實現類之一(如CommonAnnotationBeanProcessor)。

+1

@Rhanhan不知道這是否正確。該文件說,它只適用於單身人士,這是有道理的;因爲Spring如何知道原型bean何時退出範圍?有關此接口及其特定方法的詳細信息,請查看:http://static.springsource.org/spring/docs/3.0.x/javadoc-api/ – shrini1000

1

終止原型範圍的bean的唯一簡潔方法是顯式調用它的一些「銷燬」方法來處理資源。 您也可以使用Phantom ReferencesHere是關於不同類型參考的更多信息。

相關問題