shiro使用ehcache缓存权限数据

使用这个缓存技术缓存权限数据的原因,是因为在项目当中每当进行一个操作的时候,都会走realm当中去查询该用户有没有相应的权限,而realm都会从数据库进行查询,这样的话性能非常不好,效率不行,因为每个用户对应的权限基本上不会改变,当他登录之后就固定了查一遍就可以了所以给他存入到缓存当中也是可以的.

引入依赖 

<!-- 引入ehcache的依赖 -->
        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache-core</artifactId>
            <version>2.6.6</version>
        </dependency>

ehcache.xml配置文件,注释里面每一行对应的都是下面每一个配置的含义 

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">

    <!-- 存到硬盘的地方,可以改成d:///自己的盘符路径,下面这个写的是系统的临时路径 -->
    <diskStore path="java.io.tmpdir"/>     
    <!-- 
        存到内存对象的个数
        缓存的数据是否永久有效
        最大空闲时间(缓存数据空闲2分钟就会自动清理掉) 
        存活时间
        溢出到磁盘,就是查出来权限对象万一超过一万个就会存到磁盘当中,上面的路径写啥就存到哪儿去
        磁盘最多存的对象个数
        磁盘数据是否持久化
        多长时间清理一次没用的数据
        LRU是最近最少使用的会优先清理(FIFO是先进先出)
    -->
    <defaultCache
            maxElementsInMemory="10000"
            eternal="false"
            timeToIdleSeconds="120"
            timeToLiveSeconds="120"
            overflowToDisk="true"
            maxElementsOnDisk="10000000"
            diskPersistent="false"
            diskExpiryThreadIntervalSeconds="120"
            memoryStoreEvictionPolicy="LRU"
            />
</ehcache>

 默认是在这个路径下,方便使用的话把它改改,然后把它注入到shiro的安全管理器当中,然后它就自己使用上这个缓存了

 

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值