SpringBoot中如何使用Redis存储session呢?

戚薇 SpringBoot 发布时间:2023-05-06 21:22:35 阅读数:2972 1
下文笔者讲述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信息
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringBoot/202305/6373.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者