springboot項目中的普通Session和使用redis存儲session


 普通session:

 

 

session store type使用來存放session的存儲方式,目前Spring boot中只支持Redis方式,

        由於本應用暫無需將session放入redis的需求,故這里就可以將session store type設置為none.

 

這里我們將此配置信息放入application.properites之中:

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存儲格式為redis
spring.session.store-type=redis
#redis配置:
spring.redis.database=0
spring.redis.host=localhost
spring.redis.password=
spring.redis.pool.max-active=8
spring.redis.pool.max-idle=8
spring.redis.pool.max-wait=-1
spring.redis.pool.min-idle=0
spring.redis.port=6379

3.測試代碼:

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

4. 缺點:

在用redis做session管理的時候,2個ajax在begin_request時間基本一致, 
但是到達action的時間就有差距了,相差在500毫秒左右(處理session),從而容易造成請求阻塞。

原文鏈接

總結: 對於接口api類型的小項目,可以不配置session。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM