SpringBoot 配置 session 有效期

自定义 session 有效期:修改 application 配置

  • Duration 是在Java8中新增的,主要用来计算日期差值,Duration 是被 final 声明的,并且是线程安全的
  • Duration 字符串类似数字有正负之分:默认为正,负以 ‘-’ 开头,紧接着 PT 和时间字母:
  • ‘D’ – 天
  • ‘H’ – 小时
  • ‘M’ – 分钟
  • ‘S’ – 秒
server:
  servlet:
    session:
      timeout: PT60M

 

修改 session 存储方式

SpringBoot 项目默认会把 session 存储在内存里,这样 session 过多时会影响服务性能,甚至会导致内存异常。那么优化方案很直接,就是把 session 存储在别的地方,通常建议可以存于 Redis

pom 文件添加依赖

<!-- session-redis -->
<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
</dependency>

登录成功后,可以在 Redis 看到 session,且存活时间为 1800 秒

redis session 过期未删除 redis设置session过期时间_spring boot