怎么在Spring boot中使用spring session實(shí)現(xiàn)session共享?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)通江,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792
1. pom.xml中引入jar包
org.springframework.boot spring-boot-starter-data-redis org.springframework.session spring-session-data-redis org.springframework.session spring-session-core
2. 添加RedisSessionConfig配置類
在項(xiàng)目的目錄中,創(chuàng)建一個(gè)java文件(名稱隨意)即可,我這里名稱是RedisSessionConfig.java
@EnableRedisHttpSession這個(gè)注解非常最重要,加了它之后,會(huì)使用spring的一個(gè)攔截器來(lái)實(shí)現(xiàn)Session共享的操作,而配置的這個(gè)Bean,則是讓Spring根據(jù)配置文件中的配置連到Redis。
SpringSession 需要注意的就是redis需要2.8以上版本,然后開啟事件通知,在redis配置文件里面加上
notify-keyspace-events Ex // 打開此配置,其中Ex表示鍵事件通知里面的key過期事件,每當(dāng)有過期鍵被刪除時(shí),會(huì)發(fā)送通知
或是使用如下命令開啟開啟事件通知:
redis-cli config set notify-keyspace-events Egx
如果你的Redis不是你自己維護(hù)的,比如你是使用阿里云的Redis數(shù)據(jù)庫(kù)(我就是這種情況),你不能夠更改它的配置,那么可以使用下面的java配置文件即可。
package org.spring.springboot.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.session.data.redis.config.ConfigureRedisAction; import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession; @Configuration // maxInactiveIntervalInSeconds 默認(rèn)是1800秒過期,這里測(cè)試修改為60秒 @EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800) public class RedisSessionConfig { @Bean public static ConfigureRedisAction configureRedisAction() { return ConfigureRedisAction.NO_OP; } }
3. 配置redis連接
Spring Boot會(huì)自動(dòng)創(chuàng)建一個(gè)RedisConnectionFactory將Spring Session連接到端口6379(默認(rèn)端口)上localhost上的Redis服務(wù)器的連接。在生產(chǎn)環(huán)境中,您需要確保更新配置以指向Redis服務(wù)器
src/main/resources/application.properties
# Redis 配置 # Redis數(shù)據(jù)庫(kù)索引(默認(rèn)為0) spring.redis.database=0 # Redis服務(wù)器地址 spring.redis.host=192.168.0.1 # Redis服務(wù)器連接端口 spring.redis.port=6379 # Redis服務(wù)器連接密碼(默認(rèn)為空) spring.redis.password=1234
看完上述內(nèi)容,你們掌握怎么在Spring boot中使用spring session實(shí)現(xiàn)session共享的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!