其他分享
首页 > 其他分享> > 开源项目学习-jeesite1.2.7-缓存相关

开源项目学习-jeesite1.2.7-缓存相关

作者:互联网

Shiro缓存

参考资料

Shiro之缓存管理

数据缓存

spring-context-shiro.xml定义了缓存管理器:

<bean id="shiroCacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager">
   <property name="cacheManager" ref="cacheManager"/>
</bean>

该管理器在spring-context.xml进行了声明:

<!-- 缓存配置 -->
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
   <property name="configLocation" value="classpath:${ehcache.configFile}" />
</bean>

ehcache.configFile对应的值为:

ehcache.configFile=cache/ehcache-local.xml

其内容为:

<?xml version="1.0" encoding="UTF-8"?>
<ehcache updateCheck="false" name="defaultCache">

   <diskStore path="../temp/jeesite/ehcache" />

   <!-- 默认缓存配置. 自动失效:最后一次访问时间间隔300秒失效,若没有访问过自创建时间600秒失效。-->
   <defaultCache maxEntriesLocalHeap="1000" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="600"
      overflowToDisk="true" statistics="true"/>
   
   <!-- 系统缓存 -->
   <cache name="sysCache" maxEntriesLocalHeap="1000" eternal="true" overflowToDisk="true" statistics="true"/>
   
   <!-- 用户缓存 -->
   <cache name="userCache" maxEntriesLocalHeap="1000" eternal="true" overflowToDisk="true" statistics="true"/>
   
   <!-- 集团缓存 -->
   <cache name="corpCache" maxEntriesLocalHeap="1000" eternal="true" overflowToDisk="true" statistics="true"/>
   
   <!-- 内容管理模块缓存 -->
   <cache name="cmsCache" maxEntriesLocalHeap="1000" eternal="true" overflowToDisk="true" statistics="true"/>
    
   <!-- 工作流模块缓存 -->
   <cache name="actCache" maxEntriesLocalHeap="100" eternal="true" overflowToDisk="true" statistics="true"/>
   
    <!-- 简单页面缓存 -->
    <cache name="pageCachingFilter" maxEntriesLocalHeap="1000" eternal="false" timeToIdleSeconds="120"
       timeToLiveSeconds="120" overflowToDisk="true" memoryStoreEvictionPolicy="LFU" statistics="true"/>
   
   <!-- 系统活动会话缓存 -->
    <cache name="activeSessionsCache" maxEntriesLocalHeap="10000" eternal="true" overflowToDisk="true"
           diskPersistent="true" diskExpiryThreadIntervalSeconds="600" statistics="true"/>
       
</ehcache>

比如在登录过程中用到的CacheUtils就是借助ehcache做缓存管理:

public class CacheUtils {
	
	private static Logger logger = LoggerFactory.getLogger(CacheUtils.class);
	private static CacheManager cacheManager = SpringContextHolder.getBean(CacheManager.class);
	
	private static final String SYS_CACHE = "sysCache";

	/**
	 * 获取SYS_CACHE缓存
	 * @param key
	 * @return
	 */
	public static Object get(String key) {
		return get(SYS_CACHE, key);
	}
	
	
	/**
	 * 获得一个Cache,没有则显示日志。
	 * @param cacheName
	 * @return
	 */
	private static Cache<String, Object> getCache(String cacheName){
		Cache<String, Object> cache = cacheManager.getCache(cacheName);
		if (cache == null){
			throw new RuntimeException("当前系统中没有定义“"+cacheName+"”这个缓存。");
		}
		return cache;
	}

}

Session缓存

遇到时补充

标签:ehcache,缓存,return,cache,private,开源,static,jeesite1.2
来源: https://www.cnblogs.com/sk-lqbzblogs/p/16386322.html