/** * Copyright © 2012-2013 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); */ package com.hongqiang.shop.common.utils; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import net.sf.ehcache.Ehcache; import net.sf.ehcache.Element; import org.apache.shiro.cache.ehcache.EhCacheManager; /** * Cache工具类 * * @author ThinkGem * @version 2013-5-29 */ public class CacheUtils { private static CacheManager cacheManager = ((EhCacheManager) SpringContextHolder .getBean("cacheManager")).getCacheManager(); public static String getDiskStorePath() { return cacheManager.getConfiguration().getDiskStoreConfiguration() .getPath(); } public static int getCacheSize() { int i = 0; String[] arrayOfString1 = cacheManager.getCacheNames(); if (arrayOfString1 != null){ for (String str : arrayOfString1) { Ehcache localEhcache = cacheManager.getEhcache(str); if (localEhcache == null) continue; i += localEhcache.getSize(); } } return i; } private static final String SYS_CACHE = "sysCache"; public static Object get(String key) { return get(SYS_CACHE, key); } public static void put(String key, Object value) { put(SYS_CACHE, key, value); } public static void remove(String key) { remove(SYS_CACHE, key); } public static Object get(String cacheName, String key) { Element element = getCache(cacheName).get(key); return element == null ? null : element.getObjectValue(); } public static Object getKeys(String cacheName) { Object keys = getCache(cacheName).getKeys(); if (keys != null) { return keys; } return null; } public static void put(String cacheName, String key, Object value) { Element element = new Element(key, value); getCache(cacheName).put(element); } public static void remove(String cacheName, String key) { getCache(cacheName).remove(key); } public static void removeAll(String cacheName) { getCache(cacheName).removeAll(); } /** * 获得一个Cache,没有则创建一个。 * * @param cacheName * @return */ private static Cache getCache(String cacheName) { Cache cache = cacheManager.getCache(cacheName); if (cache == null) { cacheManager.addCache(cacheName); cache = cacheManager.getCache(cacheName); cache.getCacheConfiguration().setEternal(true); } return cache; } }