2012-11-26 25 views
0

我在我的應用程序中創建了一個自定義範圍,它實現org.springframework.beans.factory.config.ScopeSpring Custom Scoped Bean - 銷燬回調

作爲這一部分,我必須實現下面的方法,以便在我的自定義作用域bean上正確調用PreDestroy方法。

public void registerDestructionCallback(String name, Runnable callback) { 
} 

的方法的Javadoc不說清楚,我似乎失去了約,我應該在這個方法寫什麼代碼。

有人可以幫忙嗎?

回答

3

這取決於您的自定義作用域實際執行的操作,以及是否將此作用域用於DisposableBean,具有destroy-method的Bean和DestructionAwareBeanPostProcessor。

在最簡單的情況下,您不需要執行任何操作或僅記錄一條警告,即不支持回調。

在更復雜的情況下,您需要處理常規自定義作用域生命週期之外的對象破壞。例如。當對象被銷燬時,基於其到期時間或類似的事情(不像明確地調用Scope.remove(String name)方法)。

例如,對於會話範圍的bean,此回調連接到HttpSessionListener.sessionDestroyed(..)事件。查看org.springframework.web.context.request.SessionScope課程的來源。