springboot项目如何设置session的过期时间
作者:yyk的萌
这篇文章主要介绍了springboot项目如何设置session的过期时间,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这里我们只介绍springboot2.0的session时间设置
Duration转换字符串方式,默认为正,负以-开头,紧接着P,(字母不区分大小写)D :天 T:天和小时之间的分隔符 H :小时 M:分钟 S:秒 每个单位都必须是数字,且时分秒顺序不能乱。
例如PT10M,就是设置为10分钟,
下面这种方式是设置24小时的
错误的设置是下面这种方式,这种是不起效果的
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 } }; } }
第二个
还可以设置
application.yml
server: port: 8081 servlet: session: timeout: 60s
第三个
@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; } }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。