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信息
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


