【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
发布了284 篇原创文章 · 获赞 54 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/sayyy/article/details/104184275