Spring Session将HttpSession保存到Redis中,实现重启应用会话不丢失

这篇文章介绍一下在springboot项目中整合Spring Session,将session会话信息保存到Redis中,防止重启应用导致会话丢失。

第一步

创建一个springboot项目,添加spring-session-redis的依赖,因为要用到reids,所以要把redis相关依赖也加进来。

    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.session</groupId><artifactId>spring-session-data-redis</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency></dependencies>

第二步

在spplication.yml中配置命名空间和redis的连接信息。

spring:session:redis:save-mode: on_set_attributenamespace: spring:sessionredis:host: localhostport: 6379database: 0password: mhxy1218

第三步

在启动类上添加@EnableRedisHttpSession注解。

第四步

在项目中使用HttpSession,创建一个控制器类,然后添加两个接口分别用于设置和获取session。

package cn.edu.sgu.www.session.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Enumeration;/*** @author heyunlin* @version 1.0*/
@RestController
@RequestMapping("/session")
public class SessionController {@GetMapping("/getSession")public String getSession(HttpSession session, HttpServletRequest request) {Object name = session.getAttribute("name");// 查看请求头Enumeration<String> headerNames = request.getHeaderNames();while (headerNames.hasMoreElements()) {String element = headerNames.nextElement();System.out.println(element);}return name.toString();}@GetMapping("/setSession")public void setSession(HttpSession session, String name) {session.setAttribute("name", name);}}

第四步

启动项目,在浏览器输入以下网址,设置name为沐雨橙风ιε

http://localhost:8080/session/setSession?name=%E6%B2%90%E9%9B%A8%E6%A9%99%E9%A3%8E%CE%B9%CE%B5

然后,再访问获取session的接口

http://localhost:8080/session/getSession

第五步

查看浏览器cookie,按F12打开浏览器控制台,点击网络查看刚刚发起的请求携带的cookile数据。

把这长串字符串复制出来

第六步

清空浏览器,访问获取session数据的接口。

这时候发现已经获取不到了,这是因为清理缓存会把浏览器的cookie数据删除,所以请求时没有携带cookile请求头。

第七步

通过postman访问/session/getSession,携带请求头cookie,其内容为

SESSION=ZDcyNGFlNzgtYzUyYS00NGFjLTkwYzgtMzRiYWNjNjE1Y2Y0

第八步

重启项目,然后再获取session,这时候数据还在~

好了,文章就分享到这里了,代码已经上传到gitee~

spring boot整合spring-session-redis案例项目icon-default.png?t=N7T8https://gitee.com/muyu-chengfeng/spring-session-redis.git 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/36896.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

扩散模型中的UNET

目录 一、为什么UNET模型可以用于去噪网络二、扩散模型中的UNET是一个条件去噪网络&#xff0c;怎么实现的三、UNET用于分割和用去去噪的区别 一、为什么UNET模型可以用于去噪网络 下采样部分: 能够提取图像的深层次特征&#xff0c;这些特征往往包含图像的重要结构和信息&…

Python 继承:理解与应用

Python中的继承是面向对象编程中重要的概念之一&#xff0c;允许一个类&#xff08;子类&#xff09;从另一个类&#xff08;父类&#xff09;继承属性和方法。这种机制不仅能提高代码的重用性&#xff0c;还有助于构建层次化的数据模型&#xff0c;简化复杂系统的设计与维护。…

原型开发:加速需求验证与设计优化

目录 前言1. 原型开发的意义1.1 定义与概述1.2 原型的类型 2. 原型开发的优势2.1 明确需求2.2 提升用户满意度2.3 降低开发风险 3. 原型开发的挑战3.1 过多的原型开发3.2 资源投入与管理3.3 期望管理 4. 优化原型开发流程4.1 明确目标与范围4.2 选择合适的工具和方法4.3 加强用…

【MySQL基础篇】概述及SQL指令:DDL及DML

数据库是一个按照数据结构来组织、存储和管理数据的仓库。以下是对数据库概念的详细解释&#xff1a;定义与基本概念&#xff1a; 数据库是长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 数据库不仅仅是数据的简单堆积&#xff0c;而是遵循一定的规则…

JS 数组删除指定元素以及数组排序

删除 function cut(value) { return value.slice(0,value.length-1) } 排序 let arr [5,2,1,4,9,8] for(let i 0 ; i < arr.length ; i ) { for(let j 0 ; j < arr.length -1 ; j ) { if(arr[j] > arr[j1]){ let num arr[j] arr[j] arr[j1] arr[j1] num come…

C++之STL(十一)

1、迭代器适配器 2、插入迭代器 #include <iostream> #include <vector> #include <algorithm> #include <list> using namespace std;void showVec(const vector<int>& v) {for (vector<int>::const_iterator it v.begin(); it ! v.…

导出word模板开发记录

exportWordDocx.js import JSZipUtils from “jszip-utils” import Docxtemplater from “docxtemplater” import {saveAs} from “file-saver” import PizZip from “pizzip” const exportWordDocx (demoUrl, docxData, fileName) > {// 读取并获得模板文件的二进制…

视频压缩怎么压缩最小,怎么把视频压缩的很小

压缩视频怎么压缩到很小&#xff1f;视频是我们在生活中不可或缺的一部分&#xff0c;随着制作视频的小伙伴越来越多&#xff0c;大家都想把制作好的视频上传到一些平台或传给别人&#xff0c;有时候我们会遇到视频内存过大的问题&#xff0c;今天我给大家介绍一个快速把视频压…

SQLite:一个极简使用教程

SQLite是一个轻量级的、文件系统基础的数据库&#xff0c;它被设计为配置简单、易于部署。SQLite数据库存储在一个单一的磁盘文件中&#xff0c;这意味着数据库的创建和维护都非常简单。 1. SQLite特点 轻量级&#xff1a;SQLite不需要一个独立的服务器进程。它是一个嵌入式SQ…

万物皆可爬——亮数据代理IP+Python爬虫批量下载百度图片助力AI训练

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【导航大全】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;注册地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…

注意!!2024下《网络规划设计师》易混淆知识点来了,赶紧码住

宝子们&#xff0c;在复习软考网络规划设计师中&#xff0c;是不是觉得有很多知识点含义比较相近&#xff0c;很多友友刚看的时候&#xff0c;估计会像我一样把它们弄混&#xff0c;作为一个软考老鸟&#xff0c;在这里给大家整理了网规学习过程中易混淆的知识点&#xff0c;大…

新版彩虹云商城卡密商城/自动发卡可分站多套模板可选

完整免授权彩虹源码(多模板+小储云商城模板)版本 6.7.5,部分代码加密,使用起来一点问题都没有,加密部分是授权那一块,可以二开更改一下,就完事 无差错,免授权,功能齐全,模板齐全。 后台可设置的模板有 20 套,喜欢的就购买研究学习 支持多个接口,支持到账到个人钱…

Detailed Steps for Troubleshooting ORA-00600 [kdsgrp1] (文档 ID 1492150.1)

Detailed Steps for Troubleshooting ORA-00600 [kdsgrp1] (文档 ID 1492150.1)​编辑转到底部 In this Document Purpose Troubleshooting Steps References APPLIES TO: Oracle Database - Enterprise Edition Oracle Database Cloud Schema Service - Version N/A and lat…

Android 生成 AAR 包

当我们需要在 Android 项目中引用第三方库或模块时&#xff0c;常常会使用 AAR&#xff08;Android Archive&#xff09;包。AAR 包是一种包含了编译后代码、资源文件和清单文件等的二进制文件。 步骤 1&#xff1a;创建一个 Android Library 项目 在 Android Studio 中&#…

Ngnix内存池——高并发实现高效内存管理

目录 一、高并发下传统方式的弊端 1、常用的内存操作函数 2、弊端一 3、弊端二 4、弊端三 5、弊端四 二、弊端解决之道 1、内存管理维度分析 2、内存管理组件选型 三、高并发内存管理最佳实践 1、内存池技术 2、内存池如何解决弊端 3、高并发内存池如何实现 四、…

FC-Planner: 一个基于骨架引导的快速覆盖复杂3D场景的规划框架方案实现与难点讲解

FC-Planner方案实现细节与难点讲解 1. 骨架提取 骨架提取是FC-Planner的核心模块之一,其目的是从输入的点云数据中提取出场景的骨架结构。这一步的关键是如何准确高效地计算每个点的ROSA点。 1.1 ROSA点计算 ROSA点的计算涉及到两个优化问题: ROSA点方向 v p v_p vp​的优化…

《数字图像处理与机器视觉》案例二(基于边缘检测和数学形态学焊缝图像处理)

一、前言 焊缝是评价焊接质量的重要标志&#xff0c;人工检测方法存在检测标准不统一&#xff0c;检测精度低&#xff0c;焊缝视觉检测技术作为一种重要的质量检测方法&#xff0c;正逐渐在各行各业中崭露头角。把焊缝准确的从焊接工件中准确分割出来是焊缝评价的关键一步&…

linux上git的使用

目录 1.测试是否安装有git 2.下载项目到本地 3.三板斧 1.将代码放在创建的目录中 2.提交改动到本地 3.提交代码到远端 4.注意点 以及补充内容 1.测试是否安装有git 如果输入git --help 会显示下面一大串那么就是已经安装&#xff0c;否则需要自行手动安装 yum install g…

聚焦从业人员疏散逃生避险意识能力提升,推动生产经营单位每年至少组织开展(疏散逃生演练,让全体从业人员熟知逃生通道、安全出口及应急处置要求,形成常态化机制。

聚焦从业人员疏散逃生避险意识能力提升&#xff0c;推动生产经营单位每年至少组织开展(疏散逃生演练&#xff0c;让全体从业人员熟知逃生通道、安全出口及应急处置要求&#xff0c;形成常态化机制。完整试题答案查看 A.三次B.两次C.一次 综合运用“四不两直”、明察暗访、 ()、…

洁盟超声波清洗机怎么样?横向测评希亦、洁盟、苏泊尔超声波清洗机谁是实力派

生活中大多数人戴眼镜&#xff0c;但是很多人都不注意眼镜的保养&#xff0c;导致镜片越来越模糊&#xff0c;从而引发多边的状况发生&#xff0c;比如长久戴模糊不清的眼镜&#xff0c;视力会受到影响随之下降。甚至是眼镜长期不清洗&#xff0c;上面的灰尘、细菌会影响眼部健…