Java 是否有一个“问题”;“Spring3MVC方式”;要收听结束会话事件吗?

Java 是否有一个“问题”;“Spring3MVC方式”;要收听结束会话事件吗?,java,spring,session,servlets,spring-mvc,Java,Spring,Session,Servlets,Spring Mvc,我想在用户会话结束时删除一些临时文件。与文件关联的信息存储在一个对象中,该对象用@SessionAttributes注释 我发现处理这个问题的唯一方法是创建一个HttpSessionListener 是否有一种更高级、更简化、更灵活的方式来侦听会话结束事件,以便轻松获取带注释的对象?您很可能需要创建一个HttpSessionListener 另一个答案是: 关于如何将SpringBean加载到其中的另一个示例: 没有直接关系,但可能是一个有趣的项目 会话删除通常发生在服务器端,当会话过期时(

我想在用户会话结束时删除一些临时文件。与文件关联的信息存储在一个对象中,该对象用
@SessionAttributes
注释

我发现处理这个问题的唯一方法是创建一个
HttpSessionListener


是否有一种更高级、更简化、更灵活的方式来侦听会话结束事件,以便轻松获取带注释的对象?

您很可能需要创建一个HttpSessionListener

另一个答案是:

关于如何将SpringBean加载到其中的另一个示例:


没有直接关系,但可能是一个有趣的项目


会话删除通常发生在服务器端,当会话过期时(通常为30mn)。上面的项目允许在前端检测用户行为。

使用SpringBeans的两个选项
HttpSessionListener

第一种方法是使用
webapplicationcontextils.getRequiredApplicationContext(servletContext)
获取servlet上下文。在此基础上,您有两个子选项:

  • 使用
    getBean(…)
  • 如果要使用
    @Autowired
    /
    @Inject
    请使用
    getAutowiredCapablyBeanFactory().autowireBean(this)
    。您只需执行一次(检查字段是否为
    null
    ),因为侦听器是单例的

第二个选项是在侦听器上使用。

如果用户注销,您可以对该事件进行操作。如果用户只是走神了,
HttpSessionListener
是唯一的选择。我研究这个话题已经有一段时间了。你知道我在哪里可以找到这个完整的例子吗。提前感谢我不知道,但我认为上面的片段应该足够了:)