两种方式:
1. 监听器上加上@WebListener
public class SessionListener implements HttpSessionListener{
},然后启动器上加上@ServletComponentScan
@SpringBootApplication @MapperScan("com.inesa.smartsa.dao.mapper") @ServletComponentScan public class SmartSaApplication { public static void main(String[] args) { SpringApplication.run(SmartSaApplication.class, args); } }
2.监听器和启动器上不用加注解,写下面一段配置即可
@Configuration public class WebMvcConfig implements WebMvcConfigurer { @Bean public ServletListenerRegistrationBean<HttpSessionListener> sessionListener() { ServletListenerRegistrationBean<HttpSessionListener> listenerRegBean = new ServletListenerRegistrationBean<>(); listenerRegBean.setListener(new SessionListener()); return listenerRegBean; } }
注意:不论第一种方式还是第二种方式,查看有没有进监听器执行,很简单打断点或者写日志,我这里强调的是要在session无效(简单一点就是清空session)的情况下再去尝试,因为在session有效的时候是不会进监听器执行的。