Shiro使用之权限缓存
我们每次使用权限的时候,每次都要从数据库中查找权限数据,影响系统的运行效率,所以可以对用户的权限进行缓存。
1、在SpringShiroConfig中配置缓存
/**
* 配置shiro框架中的CacheManager对象,用于缓存用户权限
*
* @return
*/
@Bean
public CacheManager shiroCacheManager() {
return new MemoryConstrainedCacheManager();
}
2、将缓存注入到securityManager中
@Bean
public org.apache.shiro.mgt.SecurityManager securityManager(Realm realm, CacheManager cacheManager,
RememberMeManager rememberMeManager, SessionManager sessionManager) {
DefaultWebSecurityManager sManager = new DefaultWebSecurityManager();
// 写完realm后把它注入给securityManager
sManager.setRealm(realm);
sManager.setCacheManager(cacheManager);
sManager.setRememberMeManager(rememberMeManager);
sManager.setSessionManager(sessionManager);
return sManager;
}
3、结果
可以看到当我第一次点击日志管理的时候第一次访问,授权中的输出执行了。
第二次点击
可以看到语句没有输出,说明是从缓存中获取的权限。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。