您好,登錄后才能下訂單哦!
本篇文章為大家展示了Springboot中怎么利用springsession實現session共享,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
1. pom.xml中引入jar包
<!-- Spring Boot Redis 依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-core</artifactId> </dependency>
2. 添加RedisSessionConfig配置類
在項目的目錄中,創建一個java文件(名稱隨意)即可,我這里名稱是RedisSessionConfig.java
@EnableRedisHttpSession這個注解非常最重要,加了它之后,會使用spring的一個攔截器來實現Session共享的操作,而配置的這個Bean,則是讓Spring根據配置文件中的配置連到Redis。
SpringSession 需要注意的就是redis需要2.8以上版本,然后開啟事件通知,在redis配置文件里面加上
notify-keyspace-events Ex // 打開此配置,其中Ex表示鍵事件通知里面的key過期事件,每當有過期鍵被刪除時,會發送通知
或是使用如下命令開啟開啟事件通知:
redis-cli config set notify-keyspace-events Egx
如果你的Redis不是你自己維護的,比如你是使用阿里云的Redis數據庫(我就是這種情況),你不能夠更改它的配置,那么可以使用下面的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 默認是1800秒過期,這里測試修改為60秒@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800)public class RedisSessionConfig { @Bean public static ConfigureRedisAction configureRedisAction() { return ConfigureRedisAction.NO_OP; }}
3. 配置redis連接
Spring Boot會自動創建一個RedisConnectionFactory將Spring Session連接到端口6379(默認端口)上localhost上的Redis服務器的連接。在生產環境中,您需要確保更新配置以指向Redis服務器
src/main/resources/application.properties
# Redis 配置# Redis數據庫索引(默認為0)spring.redis.database=0# Redis服務器地址spring.redis.host=192.168.0.1# Redis服務器連接端口spring.redis.port=6379# Redis服務器連接密碼(默認為空)spring.redis.password=1234
上述內容就是Springboot中怎么利用springsession實現session共享,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。