当我们设置了SecurityManager的CacheManager时,如:
securityManager.cacheManager=$cacheManager
当我们设置SessionManager时:
sessionManager=org.apache.shiro.session.mgt.DefaultSessionManager
securityManager.sessionManager=$sessionManager
如 securityManager实现了SessionsSecurityManager,其会自动判断SessionManager是否实现了CacheManagerAware接口,如果实现了会把CacheManager设置给它。然后
sessionManager会判断相应的sessionDAO(如继承自CachingSessionDAO)是否实现了CacheManagerAware,如果实现了会把CacheManager设置给它;如第九章的MySessionDAO就是带缓存的SessionDAO;其会先查缓存,如果找不到才查数据库。
对于CachingSessionDAO,可以通过如下配置设置缓存的名称:
sessionDAO=com.github.zhangkaitao.shiro.chapter11.session.dao.MySessionDAO
sessionDAO.activeSessionsCacheName=shiro-activeSessionCache
activeSessionsCacheName默认就是shiro-activeSessionCache。
本文介绍了Apache Shiro框架中缓存管理的具体实现方式。详细讲述了如何配置SecurityManager的CacheManager,并通过SessionManager将缓存管理应用到Session的生命周期中。此外还探讨了如何为CachingSessionDAO设置缓存名称,以及缓存在查询过程中的作用。
953

被折叠的 条评论
为什么被折叠?



