你能澄清一下吗?
Spring有一个可以实现的接口,称为DestructionaWareBeanPostProcessor。首先通过RequiresDestroy()
方法询问该接口的实例是否需要销毁bean。如果返回true,那么当bean即将通过PostProcessBeforeDestroycle
方法销毁时,您最终将再次调用该bean。
这样做的目的是让您有机会清理该bean的资源。例如,如果您的bean引用了一个文件,您可以关闭任何可能打开的流。重要的一点是,您的类没有包含对即将被销毁的bean的引用,否则您将阻止它被垃圾收集,正如您所指出的那样。
要定义后处理程序,可以执行如下操作(未经测试)
@Component
public class MyDestructionAwareBeanPostProcessor implements DestructionAwareBeanPostProcessor {
public boolean requiresDestruction(final Object bean) {
// Insert logic here
return bean instanceof MyResourceHolder;
}
public void postProcessBeforeDestruction(final Object bean, final String beanName) throws BeansException {
// Clean up bean here.
// Example:
((MyResourceHolder)bean).cleanup();
}
}
应该怎么修改代码呀?才能运行过去 解决问题
问题内容: 这是我先前提出的问题的后续措施。 Tomcat 5.0.28有一个错误,即容器在关闭时未调用Servlet的destroy()方法。这已在Tomcat 5.0.30中修复,但是如果Servlet的destroy()方法具有System.exit(),则将导致Tomcat Windows服务抛出错误1053,并拒绝正常关闭(有关更多详细信息,请参见上面的链接)这个错误) 任何人都不知道是
如何在原型范围bean上应用spring aop方面 但令人惊讶的是,在调用原型bean的joinpoint方法时,方面并没有执行。我确信我创建的切入点是正确的,因为在eclipse中,aspectJ插件在joinPoint方法上显示了aspectJ引用的可视化标记,这表明切入点是正确的,但不确定为什么在运行时调用PrototypeBean的joinPoint方法时没有执行它。 我是以不正确的方式
我正在尝试使用Flutter编写移动应用程序。不幸的是,我需要实现一个Flutter插件才能调用一些原生API。 Objective-C对我来说太陌生了,所以我真的更喜欢使用Swift(我也不太了解,但它离Kotlin很近,我觉得很熟悉)来创建插件。 我通过Flatter获得了插件框架设置,但现在我正在尝试实现方法处理函数: 我尝试使用的本机函数具有以下签名(使用gomobile生成): 但有几件
使用quare https://github.com/Square/OkHttp的OkHttp,我如何: 检索从服务器返回的cookie 为即将到来的请求存储cookie 在后续请求中使用存储的cookie 更新后续请求返回的cookie 理想情况下,cookie将随每个请求自动存储、重新发送和更新。
这是我的豆子 这是我的路线 您可能会在上面的路由中找到一些语法问题,但它工作正常(此处复制的代码不准确) 想知道,我们可以看到bean正在路由中使用,这是类的一个实例,但是它是如何在路由中调用方法的呢?路由是如何知道调用和打印哪个方法的?