009 缓存的加入

Posted trekxu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了009 缓存的加入相关的知识,希望对你有一定的参考价值。

一 .概述

上一节,我们实现了数据库的授权访问.

但是有一个问题很严重,我们的授权每一次都在访问数据库.

这在正常使用的过程中根本不可行,现在我们就要加入缓存的支持.

 

在shiro之中,重写任何一个组件都十分的简单.本次我们首先使用Ehcache缓存实现.

好在,shiro为我们提供了一个基于Ehcache的缓存实现.

加入maven的依赖:

 


 

二 .加入缓存的实现. 

配置spring.xml文件.

<!-- 配置缓存管理器 -->
    <bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager">
        <property name="cacheManagerConfigFile" value="classpath:ehcache.xml"></property>
    </bean>
    <!-- 配置安全管理器 -->
    <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
        <property name="realm" ref="realm"></property>
        <property name="cacheManager" ref="cacheManager"></property>
    </bean>

首先添加一个缓存管理器,然后将缓存管理加入到SecurityManager之中.


 

这就完成了所有的所有的配置了.

就是这么简单.

现在我们测试一下效果.

看是否看存在多次访问数据库的现象.

技术分享图片

我们看到多次进行授权,shiro并没有多次访问数据库,说明我们的缓存实现成功了.

 

以上是关于009 缓存的加入的主要内容,如果未能解决你的问题,请参考以下文章

009-Spring Boot 事件监听

django-缓存的三种应用

vscode 用户代码片段 vue初始化模板 Snippet #新加入开头注释 自动生成文件名 开发日期时间等内容

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

团体程序设计天梯赛-L3-009 长城