Shiro学习笔记(四)使用CacheManager
实现用户认证授权之后,发现,每次刷新页面都会进行多次的数据库操作,为了避免这种现象,减轻数据库的负担,使用缓存,将查询的数据缓存到cache中,避免多次的查询数据,从而提高系统的查询效率.
使用shiro中默认的EnCache实现缓存
1.引入依赖
<!--引入shiro和ehcache-->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-ehcache</artifactId>
<version>1.5.3</version>
</dependency>
2.开启缓存
@Bean
public Realm getRealm() {
CustomerRealm customerRealm = new CustomerRealm();
//修改默认的凭证匹配器
HashedCredentialsMatcher credentialsMatcher = new HashedCredentialsMatcher();
//设置加密算法为md5
credentialsMatcher.setHashAlgorithmName("md5");
//设置散列次数
credentialsMatcher.setHashIterations(1024);
customerRealm.setCredentialsMatcher(credentialsMatcher);
//开启缓存管理
customerRealm.setCacheManager(new EhCacheManager());
customerRealm.setCachingEnabled(true);//开启全局缓存管理
customerRealm.setAuthorizationCachingEnabled(true);//开启认证缓存
customerRealm.setAuthenticationCacheName("authenticationCache");
customerRealm.setAuthenticationCachingEnabled(true);//开启授权缓存
customerRealm.setAuthorizationCacheName("authorizationCache");
return customerRealm;
}
3.启动刷新页面进行测试
因为开启了debug级别的日志,所以如果控制台没有sql展示说明缓存已开启。