Spring mvc 弹簧MVC@预拆卸方法不工作

Spring mvc 弹簧MVC@预拆卸方法不工作,spring-mvc,Spring Mvc,我在控制器类中使用@controller,它在内部创建bean。对于这个控制器,我需要使用@postConstruct和@preDestroy方法,@postConstruct工作正常,但@preDestroy不工作。这意味着Bean没有破坏。那么我如何在SpringMVC(基于注释的)中销毁bean(我没有使用ApplicationContext)。 如果我的假设是错误的,请纠正我。当您说您不使用应用程序上下文时,您的意思是说您没有使用基于xml的配置,而是使用java注释配置吗 对于Spri

我在控制器类中使用@controller,它在内部创建bean。对于这个控制器,我需要使用@postConstruct和@preDestroy方法,@postConstruct工作正常,但@preDestroy不工作。这意味着Bean没有破坏。那么我如何在SpringMVC(基于注释的)中销毁bean(我没有使用ApplicationContext)。
如果我的假设是错误的,请纠正我。

当您说您不使用应用程序上下文时,您的意思是说您没有使用基于xml的配置,而是使用java注释配置吗

对于SpringMVC控制器,@PreDestroy注释的方法将在会话到期时调用(除非它是原型范围)

这是一个帖子


这里有一个关于SpringBean生命周期的很好的解释

我发现,如果我将bean范围设置为singleton,我可以调用PreDestroy,但如果我将其设置为prototype,则无法调用它。

您希望何时调用
@PreDestroy
方法?这个bean的范围是什么?另外,当您说“不使用
ApplicationContext
”时,我猜你的意思是你没有在
web.xml
中定义根应用程序上下文,因为在没有应用程序上下文的情况下使用Spring MVC是非常核心的。你必须使用close函数来使用@preDestroy方法。在销毁bean之前,我需要调用@preDestroy方法。如果不使用ApplicationContext,我们就无法销毁bean?嗨,pavan,您的意思是不使用应用程序上下文,您正在使用注释配置,对吗?你仍然有一个上下文…只是没有通过xml配置创建它…如果我误解了你,请纠正我。