springboot使用spring-session完成session共享

这里session同步靠的是redis,即如果一个服务中的session有值就直接把该值拿到redis中去,如果redis中的session中的key存在则覆盖,不存在则创建,这样多个服务就可以共享一个session了,即把session的放到redis中去

所需依赖

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-redis</artifactId>
            <version>1.4.7.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
        </dependency>

开启redisHttpSession功能

在启动类上加上注解

@EnableRedisHttpSession

在配置文件中配置redis的地址

在application.yml中增加redis配置

spring:
  redis:
    host: 192.168.108.3
    port: 6379

测试

在8081的服务上,请求8081/login则在session中保存一个key和value

@GetMapping(value = "/login")
    public String firstResp (HttpServletRequest request){
        request.getSession().setAttribute("loginUser", "张三");
        return "ok";
    }

在8082服务商,请求getsession获取8081服务存储的session的值

  @GetMapping(value = "/getsession")
    public Object firstResp (HttpServletRequest request){
        Object loginUser = request.getSession().getAttribute("loginUser");
        return loginUser == null?"null":loginUser;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值