在之前的文章中,介绍shiro一直从shiro的.ini文件的权限认证,到在自定义Realm中的权限认证的实现,到后期我们链接数据库的权限实现,然后是自定义Realm中授权信息实现,到链接数据库的授权实现。粗粒度的授权实现角色,以及细粒度的权限字符串的授权实现。我们都一一做了解释和Demo。那么我们现在要考虑到一个系统的雏形搭建起来之后,就要考虑到一些优化的小问题,逼如说我们的权限数据一般来说不会有太大的变动,然而我们这时做的权限,授权等等的操作一直都会访问数据库,如果我们的系统访问量很大,相应的访问首页的次数也会增多,此时我们就要考虑到调用权限验证的时候回对数据库造成不小的压力,此时就要引入缓存,将我们的权限认证,授权等操作的数据放入到缓存中会在一定程度上减轻我们数据库访问的压力。
那首先我们就要来大概先了解一下shiro中为我们提供了一个CacheManager的一个接口,我们日后就可以通过实现CacheManager接口来实现自定义缓存。
大概流程:
如上图所示,我们再Shiro中的认证授权,之前是自定义Realm直接去数据库中查询认证授权的数据,然后再放入缓存中去操作,而加入缓存管理器之后我们的自定义Realm会优先去缓存管理器中去找数据,如果要找的数据在缓存管理器中有ÿ