Shiro应用之权限缓存
咱们每次应用权限的时候,每次都要从数据库中查找权限数据,影响零碎的运行效率,所以能够对用户的权限进行缓存。
1、在SpringShiroConfig中配置缓存
/** * 配置shiro框架中的CacheManager对象,用于缓存用户权限 * * @return */ @Bean public CacheManager shiroCacheManager() { return new MemoryConstrainedCacheManager(); }
2、将缓存注入到securityManager中
@Beanpublic 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、后果
能够看到当我第一次点击日志治理的时候第一次拜访,受权中的输入执行了。
第二次点击
能够看到语句没有输入,阐明是从缓存中获取的权限。