SpringBoot中如何使用Redis存储session呢?
下文笔者讲述Springboot使用Redis存储Session的方法及示例分享,如下所示
SpringBoot借助Redis存储Session的实现思路
1.借助request的getSession()方法获取session的相关信息 2.将获取的session信息存储到redis中例:Springboot使用redis存储session的示例
//添加maven依赖 1.redis相关依赖 Springboot集成redis的方法 2.spring session相关依赖 <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session</artifactId> </dependency> //具体代码 //编写HttpSessionConfig package com.core.config; import org.springframework.context.annotation.Bean; import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession; import org.springframework.session.web.http.HeaderHttpSessionStrategy; import org.springframework.session.web.http.HttpSessionStrategy; @EnableRedisHttpSession(maxInactiveIntervalInSeconds = 100, redisNamespace = "xxxx") public class HttpSessionConfig { @Bean public HttpSessionStrategy httpSessionStrategy() { return new HeaderHttpSessionStrategy(); } } //注解 EnableRedisHttpSession //创建名为springSessionRepositoryFilter的Spring Bean //该Bean实现了Filter接口 //该filter负责通过 Spring Session 替换HttpSession //controller中代码 @GetMapping("/") public String uid(HttpServletRequest request) { HttpSession session = request.getSession(); UUID uid = (UUID) session.getAttribute("uid"); if (uid == null) { uid = UUID.randomUUID(); } session.setAttribute("uid", uid); return uid.toString() + " : " + session.getId(); } 启动SpringBoot 在chrome浏览器输入 http://127.0.0.1:8080/ 返回sessionId 此时可查看redis中已存储了相关的session信息
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。