使用shiro+ehcache进行缓存权限数据
2017-08-05 15:46
369 查看
首先,ehcache是一个纯java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。
第一步、导入ehcache的jar包
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.6.6</version>
</dependency>
第二步、复制ehcache配置文件到项目中
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">
<!-- 溢出到磁盘的目录 -->
<diskStore path="java.io.tmpdir"/>
<!-- 存储最大对象数 -->
<!-- 是否永久保存 -->
<!-- 最大空闲时间 单位:秒 -->
<!-- 存活时间 -->
<!-- 溢出到磁盘 -->
<!-- 磁盘上最大存储的对象数 -->
<!-- 服务器重启后磁盘上的数据是否有效 -->
<!-- 每隔多长时间去开启一次线程清理数据 -->
<!-- 淘汰策略 最近一段时间利用率低的会被优先清理掉 -->
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
</ehcache>第三步、注册ehcache缓冲管理器并注册到安全管理器中
注意:上面设置的自动空闲时间为120秒,也就是说俩分钟之内使用的权限数据会缓存下来,并且在俩分钟内再次使用无需发送sql语句。空闲俩分钟后再次使用缓存的数据
后会无效,需要再次发送sql查询。用户退出后缓存的权限数据也是会立即失效的。
4000
第一步、导入ehcache的jar包
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.6.6</version>
</dependency>
第二步、复制ehcache配置文件到项目中
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">
<!-- 溢出到磁盘的目录 -->
<diskStore path="java.io.tmpdir"/>
<!-- 存储最大对象数 -->
<!-- 是否永久保存 -->
<!-- 最大空闲时间 单位:秒 -->
<!-- 存活时间 -->
<!-- 溢出到磁盘 -->
<!-- 磁盘上最大存储的对象数 -->
<!-- 服务器重启后磁盘上的数据是否有效 -->
<!-- 每隔多长时间去开启一次线程清理数据 -->
<!-- 淘汰策略 最近一段时间利用率低的会被优先清理掉 -->
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
</ehcache>第三步、注册ehcache缓冲管理器并注册到安全管理器中
<!-- 注册ehcache缓存管理器 --> <bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager"> <!-- 注册配置文件的路径 --> <property name="cacheManagerConfigFile" value="classpath:ehcache.xml"></property> </bean>
<!-- 配置shiro框架的安全管理器 --> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <!-- 在安全管理器中注入realm --> <property name="realm" ref="bosRealm"></property> <!-- 在安全管理器中注入缓存管理器 --> <property name="cacheManager" ref="cacheManager"></property> </bean>
注意:上面设置的自动空闲时间为120秒,也就是说俩分钟之内使用的权限数据会缓存下来,并且在俩分钟内再次使用无需发送sql语句。空闲俩分钟后再次使用缓存的数据
后会无效,需要再次发送sql查询。用户退出后缓存的权限数据也是会立即失效的。
4000
相关文章推荐
- java中使用ehcache对jdbc查询数据进行缓存
- redis使用工具类进行保存数据和Ehcache注解缓存类实现缓存value
- SpringBoot学习:整合shiro(身份认证和权限认证),使用EhCache缓存(转)
- 043 使用ehcache缓存权限数据 - bos
- 使用shiro进行权限管理
- Apache Shiro 整合Spring 进行权限验证 以及在Freemarker中使用shiro标签
- 使用EHCache对页面进行缓存
- 使用shiro进行权限管理
- 使用缓存框架 ASimpleCache和SharePreferences进行数据储存
- Apache Shiro 整合Spring 进行权限验证 以及在Freemarker中使用shiro标签
- 使用Apache shiro进行权限管理时如何对同一个URL配置多个角色的或关系
- Spring Boot Shiro 权限信息缓存处理,记住我,thymleaf使用shiro标签
- 使用shiro进行系统身份验证-权限控制,登录界面乱跳
- Shiro + EHCache 缓存的使用
- Java项目开发心得(二):使用EhCache+SSM实现数据缓存
- SSH进阶(7)——Hibernate使用EHCache进行二级缓存
- 使用shiro进行权限管理
- 使用Apache Shiro进行身份认证-多数据源认证
- Apache Shiro 整合Spring 进行权限验证 以及在Freemarker中使用shiro标签
- web项目使用ehcache-web进行页面缓存或者文件压缩