pom.xml
<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>
config
@EnableRedisHttpSession
@Configuration
public class RedisSessionConfig {
@Bean
public static ConfigureRedisAction configureRedisAction() {
return ConfigureRedisAction.NO_OP;
}
}
application.properties
####spring session redis
spring.session.store-type=redis
server.servlet.session.timeout=30
spring.session.redis.flush-mode=on-save
spring.session.redis.namespace=spring:session
spring.redis.host=192.168.0.60
spring.redis.port=6379
spring.redis.database=0
原理
1、主要通過過濾器SessionRepositoryFilter實現,
2、自定義SessionRepositoryRequestWrapper,SessionRepositoryResponseWrapper類,重寫getSession等相關方法。
3、然後把自定義的request
和response
類傳遞給過濾器的鏈
4、需要把該過濾器配置在第一個位置,優先加載