前言

  • 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
【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

相关文章:

  • 2021-09-15
  • 2021-10-01
  • 2021-10-31
  • 2021-06-22
  • 2021-04-23
  • 2021-05-07
猜你喜欢
  • 2021-08-31
  • 2021-04-22
  • 2021-08-16
  • 2021-05-31
  • 2021-12-05
相关资源
相似解决方案