Given a @RestController
像这样:
@RestController
@Scope("session")
public class MyController {
@PreDestroy
public void onSessionDestroyed() {
// clean stuff up...
}
}
Would onSessionDestroyed()
会话过期时被调用?
是的,你的@PreDestroy
带注释的方法将在会话到期时被调用。唯一不调用 @PreDestroy 注解方法的范围是 Prototype 范围。
Edit:添加更多关于其工作原理的细节 -
会话范围由一个处理SessionScope
类有一个registerDestructionCallback
内部方法。现在这个回调是通过DestructionCallbackBindingListener
这是一个HttpSessionBindingListener http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpSessionBindingListener.html它监听会话过期并触发调用@PostDestroy
相关作用域 bean 的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)