SpringSession 核心原理
以Redis作为数据持久化中间件原理解释:
@EnableRedisHttpSession导入RedisHttpSessionConfiguration配置
1、给容器中添加了一个组件SessionRepository ----->>>[RedisOperationsSessionRepository] ------>redis操作session。 session的在redis的增删改查操作都在此工厂进行
2、SessionRepositoryFilter ----->Flter: session’存储过滤器,每个请求过来都必须经过filter
2.1、创建的时候,就自动从容器中获取到了SessionRepository;
2.2、原始的request,response都被包装。SessionRepositoryRequestWrapper, SessionRepositoryResponseh
2.3、以后获取session。request.getSession()j
//SessionRepositoryRequesthrapper
2.4、wrappedRequest,getSession();===> SessionRepository 中获职到的。
也就是装饰者模式;
将原生response和request包装为spring自定义的实体类,然后就可以操作自己定义的方法,以及session工厂