Spring自定义范围Bean-销毁回调

Spring自定义范围Bean-销毁回调,spring,callback,scope,Spring,Callback,Scope,我在我的应用程序中创建了一个自定义范围,它实现了org.springframework.beans.factory.config.scope 作为其中的一部分,我必须实现下面的方法,以便在自定义范围的bean上正确调用PreDestroy方法 public void registerDestructionCallback(String name, Runnable callback) { } 该方法中的javadocs不是很清楚,我似乎不知道应该在该方法中编写什么代码 有人能帮忙吗?这取决于您

我在我的应用程序中创建了一个自定义范围,它实现了
org.springframework.beans.factory.config.scope

作为其中的一部分,我必须实现下面的方法,以便在自定义范围的bean上正确调用PreDestroy方法

public void registerDestructionCallback(String name, Runnable callback) {
}
该方法中的javadocs不是很清楚,我似乎不知道应该在该方法中编写什么代码


有人能帮忙吗?

这取决于您的自定义作用域实际做什么,以及您是否将此作用域用于DisposableBean、具有destroy方法的Bean和DestructionAwareBeanPostProcessor

在最简单的情况下,您不需要做任何事情,也不需要记录一个不支持回调的警告

在更复杂的情况下,您需要处理超出常规自定义范围生命周期的对象销毁。例如,当对象被销毁时,基于其过期或类似的情况(不同于显式调用
Scope.remove(String name)
method)


例如,对于会话范围的bean,此回调连接到事件。请参阅org.springframework.web.context.request.SessionScope类的源代码。

这取决于您的自定义作用域实际做了什么,以及您是否将此作用域用于DisposableBean、具有destroy方法的Bean和DestructionAwareBeanPostProcessor

在最简单的情况下,您不需要做任何事情,也不需要记录一个不支持回调的警告

在更复杂的情况下,您需要处理超出常规自定义范围生命周期的对象销毁。例如,当对象被销毁时,基于其过期或类似的情况(不同于显式调用
Scope.remove(String name)
method)

例如,对于会话范围的bean,此回调连接到事件。参见
org.springframework.web.context.request.SessionScope
class的源代码