SpringSession 架构设计

SpringSession由核心模块和具体存储方式相关联的实现模块构成。
核心模块包含了 SpringSession的基本抽象和 API。

SpringSession有两个核心组件:Session和SessionRepository。SpringSession简单易用,通过SessionRepository来操作Session。当建立会话时,创建Session,将一些用户信息(例如用户 ID)存到Session中,并通过SessionRepository 将Session 持久化。当会话重新建立的时候,可以获取到Session中的信息。同时后台维护了一个定时任务,通过一些巧妙的方式,将过期的Session通过SessionRepository删除掉。下面详细介绍一下这两个核心组件。

Redis存储Session

注入SessionRepository:

RedisHttpSessionConfiguration类中发现注入了一个sessionRepository 类,因为是封装在RedisHttpSessionConfiguration类中,所以如果直接使用注解@EnableRedisHttpSession,就相当于已经注入了sessionRepository类,不需要在外部配置类RedisConfig中再手动添加。

SpringSession 架构设计_第1张图片
image.png

Spring默认实现的Session

注入SessionRepository:

也注入了sessionRepository类,但是因为SpringHttpSessionConfiguration类中没有注入sessionRepository类,所以需要在外部配置类HttpSessionConfig中手动添加

SpringSession 架构设计_第2张图片
手动注入的.png

你可能感兴趣的:(SpringSession 架构设计)