Spring Boot使用Redis管理Session
Redis
Spring Boot
Spring
在開發後端服務的時候,我個人是比較傾向構建無狀態介面的,如果需要驗證可以使用OAuth2.0協議給客戶端Token,服務端存入Redis等內存資料庫。再通過AOP進行校驗《Spring Boot使用AOP》。
不過實際工作中還是有很多需要Session信息的項目,比如管理系統等等。
這就又牽扯出一個問題,如果我們的後端服務需要負載均衡——不管是用Nginx、還是Spring Cloud的Ribbon進行負載轉發,多個服務端的Session如何統一管理?
本例採用Redis,原工程代碼見《Spring Boot使用Redis》。
配置
pom.xml
增加一個依賴。
配置
在原來配置類的基礎上增加@EnableRedisHttpSession註解,其中maxInactiveIntervalInSeconds是Session失效時間。在實際工作中,Redis肯定不會只管理一個服務的Session,每個服務的Session最好有所區別,redisNamespace就是用來設置命名空間的。
Controller
Controller
第一個方法設置Session信息,第二個方法獲取Session信息。
結果
日誌
當執行第一個方法時,已經在Session里設置了用戶信息,寫入Redis了。
第二個方法從Session中取出了用戶信息。
Redis
看看Redis里的數據,紅框就代表這下面是我們當前服務的Session。
※Spring Boot使用Redis做緩存
※Spring Boot使用AOP
※Spring Boot自定義Logback
※Docker掛載主機目錄(基於Tomcat)
※Docker與主機互傳文件(基於Tomcat)
TAG:Java個人學習心得 |