Springboot-session

来源:互联网 发布:紧急域名升级通知 编辑:程序博客网 时间:2024/06/14 19:28

application.properites配置

session store type使用来存放session的存储方式,目前Spring boot中只支持Redis方式。 由于本应用暂无需将session放入redis的需求,故这里就可以将session store type设置为none.

这里我们将此配置信息放入application.properites之中:

 # default-store in spring session. it will be set in redis only outside.spring.session.store-type=none

补充: pom.xml

  <!-- 引入session jar包 -->        <dependency>            <groupId>org.springframework.session</groupId>            <artifactId>spring-session</artifactId>        </dependency>

再次启动,成功。


session 有效时间设置:

//在程序入口类中添加如下代码://设置session失效时间    @Bean    public EmbeddedServletContainerCustomizer containerCustomizer(){        return new EmbeddedServletContainerCustomizer() {            @Override            public void customize(ConfigurableEmbeddedServletContainer container) {                container.setSessionTimeout(1800);//单位为S            }        };    }

使用redis存储session:

1. pom.xml设置

       <!-- 引入session jar包 -->        <dependency>            <groupId>org.springframework.session</groupId>            <artifactId>spring-session</artifactId>        </dependency>

2. application.properties配置

#session存储格式为redisspring.session.store-type=redis#redis配置:spring.redis.database=0spring.redis.host=localhostspring.redis.password=spring.redis.pool.max-active=8spring.redis.pool.max-idle=8spring.redis.pool.max-wait=-1spring.redis.pool.min-idle=0spring.redis.port=6379

3.测试代码:

@RequestMapping("/")@ResponseBodyString home(HttpSession session) {    session.setAttribute("test", new Date());    return "Hello World!";}

4. 缺点:

在用redis做session管理的时候,2个ajax在begin_request时间基本一致,
但是到达action的时间就有差距了,相差在500毫秒左右(处理session),从而容易造成请求阻塞。

原文链接

总结: 对于接口api类型的小项目,可以不配置session。