1.导入依赖
@EnableRedisHttpSession
这个注解是由spring-session-data-redis提供的
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
2.添加@EnableRedisHttpSession
来开启spring session支持
@Configuration
@EnableRedisHttpSession
public class RedisSessionConfig {
}
3.在配置文件里配置spring session
spring.session.store-type=redis #指定redis实现spring session储存
server.servlet.session.timeout=3600 # Session过期时间,单位s
#session更新策略,有ON_SAVE、IMMEDIATE
#前者是在调用#SessionRepository.save(org.springframework.session.Session)时,在response commit前刷新缓存
#后者是只要有任何更新就会刷新缓存
spring.session.redis.flush-mode = on_save
spring.session.redis.namespace=SESSIONS #用于存储会话的密钥的命名空间。
4.共享session
controller中通过参数(HttpServletRequest request)
request.getSession().setAttribute("requestUrl", request.getRequestURL());
session会自动保存在redis中。
然后访问不同的服务器(同一个redis)可以获取同一个session,实现session共享。