MemorySessionDAO
这里面也是类似的方法 基于ConcurrentHashMap的增删改查
EnterpriseCacheSessionDAO
这里面也是类似的方法 基于ConcurrentHashMap的增删改查
源码看到这里的小小感受
1、shiro对session的保存都是基于内存 通过ConcrrentHashMap集合进行存储 2、如果想通过数据库、缓存或文件存储的话 需要自己实现 而实现的方式也很简单 就是 需要实现增删改查的几个方法即可
对shiro session管理机制进行扩展 实现session的持久化和共享
session存储到redis缓存中的实现
1、继承CacheManager 实现getCache的方法 2、实现Cache接口 实现基于redis的增删改查 3、将存储redis的实现换成存储数据库就变成了session持久化到数据库的方式
下面介绍另外一个redis的实现方法(对redis的封装比较好 推荐使用) 包括redis集群模式、单机模式
类之间依赖关系图
接下来分析下每一个类的实现
接口 IRedisManager
该接口有4个实现类
WorkAloneRedisManager redis单机模式的实现类