最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot集成redis實(shí)現(xiàn)共享存儲session

 更新時(shí)間:2024年03月18日 09:55:12   作者:咸魚不閑.s  
這篇文章主要介紹了SpringBoot集成redis實(shí)現(xiàn)共享存儲session的流程步驟,文中通過代碼示例介紹的非常詳細(xì),并總結(jié)了一些常見的錯(cuò)誤及解決方法,需要的朋友可以參考下

redis實(shí)現(xiàn)共享存儲session

  • 首先下載redis,我下載的版本是5.0.14,目前官網(wǎng)貌似找不到5.x版本,可以自行去網(wǎng)上尋找。我這里的springboot版本是2.6.4
  • 引入redis依賴
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
    <version>2.6.4</version>
</dependency>
  • 引入 spring-session 和 redis 的整合
<!-- https://mvnrepository.com/artifact/org.springframework.session/spring-session-data-redis -->
<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
    <version>2.6.3</version>
</dependency>
  • 修改 spring-session 存儲配置 spring.session.store-type
spring:
  session:
    timeout: 86400 #過期時(shí)間:24h
    store-type: redis #存儲類型redis

正常做完這些就可以實(shí)現(xiàn)共享存儲session
但是我遇到一些問題:

自定義的Session存儲庫(SessionRepository)和@EnableRedisHttpSession注解沖突

配置好redis -session但是登錄后,redis中并沒有存儲session

原因: 在之前解決跨域訪問出現(xiàn)的Set-Cookie:SameSite=Lax 問題是,在網(wǎng)上引入了SessionConfig 配置類:

import org.springframework.boot.autoconfigure.session.DefaultCookieSerializerCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.session.MapSessionRepository;
import org.springframework.session.SessionRepository;
import org.springframework.session.config.annotation.web.http.EnableSpringHttpSession;
import org.springframework.session.web.http.DefaultCookieSerializer;
 
import java.util.concurrent.ConcurrentHashMap;
 
@Configuration
@EnableSpringHttpSession
public class SessionConfig {
    @Bean
    public SessionRepository sessionRepository() {
        return new MapSessionRepository(new ConcurrentHashMap<>());
    }
 
    @Bean
    DefaultCookieSerializerCustomizer cookieSerializerCustomizer() {
        return new DefaultCookieSerializerCustomizer() {
            @Override
            public void customize(DefaultCookieSerializer cookieSerializer) {
                cookieSerializer.setSameSite("None");
                cookieSerializer.setUseSecureCookie(true);
            }
        };
    }
}

可以看到該配置類里面引用了@EnableSpringHttpSession注解,并且建了一個(gè)名為sessionRepository的Bean,其作用是為Spring應(yīng)用程序配置一個(gè)自定義的Session存儲庫(SessionRepository)。

使用了MapSessionRepository,它是Spring Session提供的一種內(nèi)存存儲方式,用于將Session數(shù)據(jù)存儲在JVM內(nèi)存中。通過傳入ConcurrentHashMap作為構(gòu)造函數(shù)的參數(shù),實(shí)際上是在內(nèi)存中創(chuàng)建了一個(gè)并發(fā)安全的Map,用于存儲Session對象。
通常情況下,默認(rèn)情況下Spring Session會將Session存儲在類似Redis、MongoDB等外部持久化存儲中,但是通過這段代碼,我們可以將Session存儲在內(nèi)存中,這對于某些特定場景(比如開發(fā)和測試)可能會很有用。

但是現(xiàn)在,我們已經(jīng)在application.yml配置文件中配置存儲類型是redis,這導(dǎo)致SessionConfig中的sessionRepository覆蓋掉了配置文件中的配置,導(dǎo)致session并沒有存儲到redis中 。

同時(shí),如果在application.yml配置文件中配置已經(jīng)配置好了session,就不要使用@EnableSpringHttpSession注解,我添加以后出現(xiàn)了以下報(bào)錯(cuò)

意思是我定義了重復(fù)的bean,@EnableRedisHttpSession注解和application.yml文件中的session配置存在沖突,特別是在指定存儲類型、超時(shí)時(shí)間等方面。兩者的配置不一致或沖突,導(dǎo)致應(yīng)用程序?qū)ession的處理出現(xiàn)問題。

現(xiàn)在去掉sessionRepository方法和@EnableRedisHttpSession注解,在進(jìn)行測試,session成功存儲在redis中

到此這篇關(guān)于SpringBoot集成redis實(shí)現(xiàn)共享存儲session的文章就介紹到這了,更多相關(guān)SpringBoot redis共享session內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis對于int類型的參數(shù)問題及解決過程

    Mybatis對于int類型的參數(shù)問題及解決過程

    Mybatis參數(shù)傳遞與數(shù)據(jù)庫查詢中int類型問題分析及解決,探討int類型在Mybatis中與數(shù)據(jù)庫查詢時(shí)的誤判問題因及解決辦法,并提出優(yōu)化建議
    2026-06-06
  • java封裝類型與基礎(chǔ)類型對比示例分析

    java封裝類型與基礎(chǔ)類型對比示例分析

    這篇文章主要為大家介紹了java封裝類型與基礎(chǔ)類型對比示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Java 實(shí)現(xiàn)實(shí)時(shí)監(jiān)聽文件夾是否有新文件增加并上傳服務(wù)器功能

    Java 實(shí)現(xiàn)實(shí)時(shí)監(jiān)聽文件夾是否有新文件增加并上傳服務(wù)器功能

    本文中主要陳述一種實(shí)時(shí)監(jiān)聽文件夾中是否有文件增加的功能,可用于實(shí)際文件上傳功能的開發(fā)。本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2019-09-09
  • 在eclipse中中文漢字亂碼的解決方案

    在eclipse中中文漢字亂碼的解決方案

    在本篇文章里小編給大家分享的是關(guān)于在eclipse中中文漢字亂碼的解決方案,有需要的朋友們可以學(xué)習(xí)下。
    2019-12-12
  • Java List 用法詳解及實(shí)例分析

    Java List 用法詳解及實(shí)例分析

    這篇文章主要介紹了Java List 用法詳解及實(shí)例分析的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • MybatisPlus開啟二級緩存的方法詳解

    MybatisPlus開啟二級緩存的方法詳解

    這篇文章主要介紹了MybatisPlus開啟二級緩存的方法詳解,二級緩存是基于mapper文件的namespace級別,也就是說多個(gè)sqlSession可以共享一個(gè)mapper中的二級緩存區(qū)域,需要的朋友可以參考下
    2023-11-11
  • Java開發(fā)環(huán)境配置方法

    Java開發(fā)環(huán)境配置方法

    這篇文章主要介紹了并不是每一臺計(jì)算機(jī)都可以運(yùn)行Java程序,要運(yùn)行Java程序,計(jì)算機(jī)必須學(xué)習(xí)搭建Java開發(fā)環(huán)境,需要的朋友可以參考下
    2015-07-07
  • Spring中的BeanUtils工具類用法

    Spring中的BeanUtils工具類用法

    本文介紹了BeanUtils的基本用法和高級用法,包括copyProperties()、getProperty()、setProperty()等方法,以及如何自定義屬性映射規(guī)則和批量設(shè)置屬性值,同時(shí),也指出了使用時(shí)需要注意的事項(xiàng)
    2026-03-03
  • SpringBoot里使用Servlet進(jìn)行請求的實(shí)現(xiàn)示例

    SpringBoot里使用Servlet進(jìn)行請求的實(shí)現(xiàn)示例

    這篇文章主要介紹了SpringBoot里使用Servlet進(jìn)行請求的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Java 內(nèi)存模型 (JMM) 與 volatile 底層實(shí)現(xiàn)

    Java 內(nèi)存模型 (JMM) 與 volatile 底層實(shí)現(xiàn)

    這篇文章詳細(xì)介紹了Java中的volatile關(guān)鍵字,從硬件底層到JVM規(guī)范,逐步講解了它的核心原理,包括可見性和禁止重排序,文章還探討了volatile的使用場景、常見誤區(qū)以及在實(shí)際工作中的應(yīng)用,感興趣的朋友跟隨小編一起看看吧
    2026-03-03

最新評論

阿图什市| 丹巴县| 勐海县| 丹巴县| 成安县| 本溪| 郓城县| 宜阳县| 启东市| 麻阳| 清徐县| 根河市| 左贡县| 义马市| 英德市| 宝山区| 平罗县| 宝鸡市| 溧阳市| 太谷县| 曲麻莱县| 绥阳县| 尉氏县| 屏边| 九龙县| 涿鹿县| 新建县| 新宁县| 呼图壁县| 延庆县| 荔浦县| 普兰县| 太原市| 惠东县| 油尖旺区| 元朗区| 双城市| 上虞市| 甘南县| 固阳县| 永丰县|