Redis可以用作分布式共享session的解决方案

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.annotation.Configuration;

import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

import org.springframework.session.web.http.DefaultCookieSerializer;

import org.springframework.session.web.http.CookieSerializer;

@Configuration

@EnableRedisHttpSession

public class RedisSessionConfig {

@Autowired
public void configureSession(CookieSerializer cookieSerializer) {
    // 自定义cookie的相关配置
    cookieSerializer.setCookieName("SESSION_ID");
    cookieSerializer.setCookiePath("/");
    cookieSerializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$");
}

@Bean
public CookieSerializer cookieSerializer() {
    return new DefaultCookieSerializer();
}

}

上述代码通过@EnableRedisHttpSession注解启用Redis作为session存储,并自定义了cookie的相关配置。可以根据需要进行修改。

在项目中使用Redis作为session存储后,可以通过注入HttpSession对象来访问和操作session中的数据。以下是一个简单的示例

import javax.servlet.http.HttpSession;

@RestController

public class SessionController {

@Autowired
private HttpSession session;

@GetMapping("/setSession")
public void setSession() {
    session.setAttribute("key", "value");
}

@GetMapping("/getSession")
public String getSession() {
    String value = (String) session.getAttribute("key");
    return value != null ? value : "Session not found";
}

}

在上述示例中,setSession方法用于设置session的值,getSession方法用于获取session的值。

需要注意的是,为了使session能够跨域名共享,需要设置cookie的domain属性为公共域名。在上述示例中,通过设置DefaultCookieSerializer的domainNamePattern属性,可以将cookie的domain属性设置为公共域名。请根据实际情况进行调整。

相关推荐
标贝科技26 分钟前
ChatGPT对话训练数据采集渠道有哪些
数据库·人工智能·机器学习·chatgpt
乌啼霜满天24943 分钟前
如何将MySQL卸载干净(win11)
数据库·mysql
2的n次方_1 小时前
掌握Spring Boot数据库集成:用JPA和Hibernate构建高效数据交互与版本控制
数据库·spring boot·hibernate
NaZiMeKiY1 小时前
SQLServer数据分页
数据库·sql·sqlserver
Python私教2 小时前
Python国产新 ORM 框架 fastzdp_sqlmodel 快速入门教程
java·数据库·python
孟章豪2 小时前
SQL Server全方位指南:从入门到高级详解
数据库
数分大拿的Statham2 小时前
PostgreSQL中的regexp_split_to_table函数详解,拆分字段为多行
大数据·数据库·postgresql·数据分析·数据清洗
mqiqe2 小时前
PostgreSQL主备环境配置
数据库·postgresql
mqiqe2 小时前
PostgreSQL 容器安装
数据库·postgresql
小光学长2 小时前
基于vue框架的宠物寻回小程序8g7el(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
数据库