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 共享.
来源: http://www.bubuko.com/infodetail-3147774.html