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、需要把该过滤器配置在第一个位置,优先加载