注册session监听器的三种方式
web.xml配置
public class SessionListener implements HttpSessionListener {
public SessionListener(BehaviorService behaviorService) {
this.behaviorService = behaviorService;
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
}
@Override
public void sessionCreated(HttpSessionEvent se) {
}
}
<web-app ...>
<listener>
<listener-class>com.xx.xx.SessionListener</listener-class>
</listener>
</web-app>
Servlet 3环境中使用注解@WebListener,同时SpringBootApplication上加注解@ServletComponentScan
@WebListener
public class SessionListener implements HttpSessionListener {
public SessionListener(BehaviorService behaviorService) {
this.behaviorService = behaviorService;
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
}
@Override
public void sessionCreated(HttpSessionEvent se) {
}
}
@ServletComponentScan
public class xxApplication extends SpringBootServletInitializer {
// 省略
}
通过声明ServletListenerRegistrationBean注册监听器
public class SessionListener implements HttpSessionListener {
public SessionListener(BehaviorService behaviorService) {
this.behaviorService = behaviorService;
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
}
@Override
public void sessionCreated(HttpSessionEvent se) {
}
}
@Bean
public ServletListenerRegistrationBean<SessionListener > sessionListener() {
ServletListenerRegistrationBean<SessionListener > listenerRegBean =
new ServletListenerRegistrationBean<>();
listenerRegBean.setListener(new SessionListener ());
return listenerRegBean;
}