【spring-session】介绍
前言
- spring-session 2.0.10.RELEASE
- 项目地址: https://spring.io/projects/spring-session
- 文档地址: https://docs.spring.io/spring-session/docs/2.0.10.RELEASE/reference/html5/
介绍
spring-session 在无需绑定 web 容器的情况下提供对集群 session 的支持。并提供对以下情况的透明集成:
- HttpSession:允许替换 web 容器的 HttpSession
- WebSocket:使用 WebSocket 通信时,提供 Session 的活跃
- WebSession:允许以应用中立的方式替换 webflux 的 webSession
WebSocket 和 WebSession 介绍略。
Spring Session 替换 HttpSession 得到什么好处呢?
-
集群会话 : Spring Session 使支持集群会话变得很简单,而无需绑定到特定于应用程序容器的解决方案。
-
RESTful API : Spring Session 允许在标头中提供会话 ID 以使用 RESTful API
spring-session 如何替换 HttpSession
- 添加一个 Filter(SessionRepositoryFilter)。
- 在 Filter 中,将 request 和 response 替换为,wrappedRequest(SessionRepositoryRequestWrapper)和 wrappedResponse(SessionRepositoryResponseWrapper)。
- wrappedRequest 负责将 session 替换为 HttpSessionWrapper。
- HttpSessionWrapper 为 Adapter , 指向一个 org.springframework.session.Session 。
- 如果 org.springframework.session.Session 的实现为 RedisSession ,则在 redis 中保存 session。其它实现以此类推。
来张图:
传统 Web 容器 Session 和 spring-session
示例
官方提供的示例够全的:https://docs.spring.io/spring-session/docs/2.0.10.RELEASE/reference/html5/#samples。
- spirng boot 示例:https://docs.spring.io/spring-session/docs/2.0.10.RELEASE/reference/html5/guides/boot-redis.html
- 使用 srping 注解配置的示例:https://docs.spring.io/spring-session/docs/2.0.10.RELEASE/reference/html5/guides/java-redis.html
- 使用 spring xml 配置的示例:https://docs.spring.io/spring-session/docs/2.0.10.RELEASE/reference/html5/guides/xml-redis.html
摘抄自网络,便于检索查找。

浙公网安备 33010602011771号