場景 當後臺項目由部署在一臺改為部署在多台以後,解決session共用問題最常用的辦法就是把session存儲在redis等緩存中。關於session和cookie概念這裡就不再贅述了,在springboot security環境下,把session存儲到redis中共用是非常非常簡單的,除了多了一 ...
場景
當後臺項目由部署在一臺改為部署在多台以後,解決session共用問題最常用的辦法就是把session存儲在redis等緩存中。關於session和cookie概念這裡就不再贅述了,在springboot-security環境下,把session存儲到redis中共用是非常非常簡單的,除了多了一些配置,幾乎不用改任何代碼。共用session達到的效果就是,用戶在一臺伺服器上面登錄成功後,訪問另外一臺,用戶也是處於登錄狀態。下麵創建兩個一樣的項目,來配置session共用。
增加依賴
把session存儲在redis中配置共用,需要添加兩個依賴,一是redis,二是spring session:
配置文件修改
在配置文件中,需要配置redis的數據源和session的一些屬性:
關於session的配置,可以根據ide的提示看一下:
可以看到session的存儲不僅可以在redis中,還可以在資料庫或者MongoDB中,不過目前redis是選擇最多的一種方式。
添加註解
最後在啟動類中添加一個註解 @EnableRedisHttpSession :
測試
先打開一個項目的登錄頁面,登錄成功,
然後再打開一個瀏覽器,直接訪問第二個項目的主頁,此時不用登錄直接可以訪問:
來看一下session在redis中的存儲:
這樣就實現了session共用!此時把其中一個退出,另一個也會自動退出,redis 中的session數據也會自動刪除。
代碼地址 : https://gitee.com/blueses/spring-boot-security 091 092