springboot项目如何设置session的过期时间

这里我们只介绍springboot2.0的session时间设置

Duration转换字符串方式,默认为正,负以-开头,紧接着P,(字母不区分大小写)D :天 T:天和小时之间的分隔符 H :小时 M:分钟 S:秒 每个单位都必须是数字,且时分秒顺序不能乱。

例如PT10M,就是设置为10分钟,

下面这种方式是设置24小时的

springboot项目如何设置session的过期时间_第1张图片

错误的设置是下面这种方式,这种是不起效果的

server.servlet.session.timeout=30s

或者使用第二种方式

session1.setMaxInactiveInterval(60*60);//设置session一小时后失效

springboot设置session失效的几种方式

如果是1.5.6版本

这里 可以在application中加上bean文件

package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class DemoApplication {undefined
public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
}
//设置session过期时间
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
    return new EmbeddedServletContainerCustomizer() {
        public void customize(ConfigurableEmbeddedServletContainer container) {
            container.setSessionTimeout(7200);// 单位为S
        }
    };
}
}

springboot项目如何设置session的过期时间_第2张图片

第二个

还可以设置

application.yml

server:
port: 8081
servlet:
session:
timeout: 60s

springboot项目如何设置session的过期时间_第3张图片

第三个

@RestController
public class HelloController {undefined
@PostMapping("test")
public Integer getTest(@RequestParam("nyy")String nn, HttpServletRequest httpServletRequest ){
    HttpSession session = httpServletRequest.getSession();
   session.setMaxInactiveInterval(60);
    int maxInactiveInterval = session.getMaxInactiveInterval();
    long lastAccessedTime = session.getLastAccessedTime();
    return maxInactiveInterval;
}
}

springboot项目如何设置session的过期时间_第4张图片

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(springboot项目如何设置session的过期时间)