shiro(三):cacheManager,缓存管理器

使用缓存可以避免需要授权信息时频繁的调用数据库查询的问题。
原理很简单,只要在SecurityManager里注入CacheManager即可。
我们可以自己定义CacheManager的实现,可以是ehcache、redis等等。


1.SecurityManager

在securityManager里配置CacheManager


    
        
        
    

2.CacheManager

配置自己的CacheManager

a.使用Ehcache

使用ehcache很简单,3个步骤即可:

  1. 引入依赖
      
          org.apache.shiro
          shiro-ehcache
          1.3.2
      
      
          net.sf.ehcache
          ehcache-core
          2.6.9
      
  1. 缓存配置


    
        
 

name 代表缓存的名字,在spring-shiro里使用的哪一个缓存,就加载哪一个配置
3. 配置CacheManager

    
    
        
    

只需要这3步就可以使用ehcache作为shiro的缓存了


b.使用Redis

使用Redis作为shiro的缓存就需要去实现shiro的Cache以及CacheManager即可。
首先需要将Redis整合到项目中,这里不做详细描述,可以参考:springMVC+Redis 集成
接着根据自己使用的Redis模板以及需求实现Cache:

public class RedisCache<K,V> implements Cache<K,V> 

实现CacheManager:

public class RedisCacheManager implements CacheManager {
    @Override
    public <K, V> Cache<K, V> getCache(String s) throws CacheException {
        return new RedisCache<>();
    }
}

最后把spring-shiro里的cacheManager换成自己实现的RedisCacheManager。


你可能感兴趣的:(shiro)