认证服务之springboot整合springSession(技术篇)

注:此次使用redis缓存进行整合,请在学习本章之前请先学习《springboot项目中使用redis缓存(技术篇)》

1.在框架中引入springsession的pom依赖

<!--        整合springSession完成session共享的问题-->
<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
</dependency>

2.自定义一些配置(按照自己的需求)

spring:
  session:
    #    设置session保存类型,这里保存在redis中
    store-type: redis
server:
  #    session默认的过期时间
  servlet:
    session:
      timeout: 30m

3.配置redis(略)

4.在主启动类上添加一个注解(关于这个注解的说明如下)

@EnableRedisHttpSession //开启redis作为session的存储

The @EnableRedisHttpSession annotation creates a Spring Bean with the name of springSessionRepositoryFilter that implements Filter. The filter is in charge of replacing the HttpSession implementation to be backed by Spring Session. In this instance, Spring Session is backed by Redis.

5.向redis中存储的session,data对象的类一定要实现序列化接口

session.setAttribute("user",data);

6.默认发放的令牌,session=aaaaa,作用域:当前域(需要扩大到父域名作用范围)
另外需要使用json的序列化方式来序列化对象数据到redis中

/**
 * @author kate
 * @Date 2022-02-13 16:55:06
 * 配置cookie和redis序列化器
 */
@Configuration
public class GulimallSessionConfig {

    /**
     * 配置cookie
     * @return
     */
    @Bean
    public CookieSerializer getCookieSerializer(){
        DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer();
        //指定cookie的作用域和cookie的名字
        cookieSerializer.setDomainName("父域名");
        cookieSerializer.setCookieName("session名字");
        //将对象放入容器中
        return cookieSerializer;
    }

    /**
     * 配置redis的序列化
     * GenericJackson2JsonRedisSerializer:可以使用通用的泛型
     * @return
     */
    @Bean
    public RedisSerializer<Object> getRedisSerializer(){
        return new GenericJackson2JsonRedisSerializer();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值