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.pswp.cn/diannao/36896.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/36896.shtml
英文地址,請注明出處:http://en.pswp.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;上面的灰塵、細菌會影響眼部健…