springboot 关于session共享的问题

近来公司的一个项目 springboot +springcloud 前后端分离,是分布式,就遇到session共享问题,这里用的redis的session共享,代码如下  springboot的版本是2.1.2 ,测试的代码如下



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.2.RELEASE
         
    
    com.ex
    demo
    0.0.1-SNAPSHOT
    demo
    Demo project for Spring Boot

    
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-data-redis
        
        
        
            org.springframework.session
            spring-session-data-redis
        


        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


添加类如下:

package com.ex.demo.common;

import org.springframework.context.annotation.Configuration;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

/**
 * session托管到redis
 *
 */
@Configuration
@EnableRedisHttpSession
public class SessionConfig {

}



controller类代码如下

package com.ex.demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.security.auth.message.callback.PrivateKeyCallback;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

@RestController
@RequestMapping("/pz")
public class aaController {
    @RequestMapping("/index")
    public String  getSession(HttpServletRequest request){
        HttpSession session = request.getSession();
        return session.getId()+": ------2222-------";
    }
}


 

配置代码如下

server.port=8081
spring.redis.database=1
spring.redis.host=localhost
spring.redis.port=6379
#spring.redis.password=

spring.redis.jedis.pool.max-active=8

spring.redis.jedis.pool.min-idle=0

spring.redis.jedis.pool.max-wait=-1ms

可以修改端口 在打一个jar包,运行发现两个页面显示的sessionId 是一样的。

 

你可能感兴趣的:(springboot 关于session共享的问题)