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、结果

image.png

image.png

可以看到当我第一次点击日志管理的时候第一次访问,授权中的输出执行了。
第二次点击

image.png
可以看到语句没有输出,说明是从缓存中获取的权限。


流浪成疯
7 声望3 粉丝

学习


引用和评论

0 条评论