首页 > 技术文章 > springboot处理session生命周期

jin-zhe 2018-01-05 13:52 原文

在使用springboot开发过程中发现用户登陆后60s后session就自动失效了,需要重新登陆,明明 application.yml  文件里已经配置了 server.session.timeout 的失效时长,但是并没有效果。

通过简单的分析,spring1.4后基于注解开发,几乎抛弃了繁琐了XML配置文件,既然是通过注解来开发的 那么为什么不通过注解来给我们的session设置生命周期呢? 

PS:通过 request.getSession().getMaxInactiveInterval() 可以查看你的session时间
此时发现到了我的session周期为60s,现在我们怎么解决呢 怎么通过注解来给我们的session设定时间周期呢?
在我们启动器中 也就是

1 public static void main(String[] args) throws Exception{ 
2       SpringApplication.run(Application.class, args); 
3 } 

这个类中我们在上面添加一个注解:

1 @Bean 
2 public EmbeddedServletContainerCustomizer containerCustomizer(){ 
3       return new EmbeddedServletContainerCustomizer() { 
4 @Override 
5 public void customize(ConfigurableEmbeddedServletContainer Container) { 
6       container.setSessionTimeout(1800);//单位为S 
7            } 
8       }; 
9   } 

这样我们的session生命就处理完毕。

推荐阅读