import java.io.Serializable; import java.net.URL; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import net.sf.ehcache.Element; /** * * @author WUJXIAO */ public class EhCacheUtil { private static CacheManager manager; static { init(); } public synchronized static void init() { System.setProperty("net.sf.ehcache.enableShutdownHook", "true"); URL url = EhCacheUtil.class.getResource("/ehcache.xml"); manager = new CacheManager(url); } public synchronized static void stop() { if (manager != null) { manager.shutdown(); manager = null; } } private synchronized static Cache _GetCache(String cache_name, boolean autoCreate) { Cache cache = manager.getCache(cache_name); if (cache == null && autoCreate) { manager.addCache(cache_name); cache = manager.getCache(cache_name); } return cache; } /** * 获取缓存中的数据 * * @param name * @param key * @return */ public synchronized static Object get(String name, Serializable key) { return get(Object.class, name, key); } /** * 获取缓存中的数据 * * @param <T> * @param resultClass * @param name * @param key * @return */ @SuppressWarnings("unchecked") public synchronized static <T> T get(Class<T> resultClass, String name, Serializable key) { if (name != null && key != null) { Cache cache = _GetCache(name, true); Element element = cache.get(key); if (element != null) { T value = (T) element.getObjectValue(); cache.flush(); return value; } } return null; } /** * 写入缓存 * * @param name * @param key * @param value */ public synchronized static void put(String name, Object key, Object value) { put(name,(Serializable)key,(Serializable)value); } /** * 写入缓存 * * @param name * @param key * @param value */ public synchronized static void put(String name, Serializable key, Serializable value) { if (name != null && key != null && value != null) { Element element = new Element(key, value); Cache cache = _GetCache(name, true); cache.put(element); cache.flush(); } } /** * 清除缓冲中的某个数据 * * @param name * @param key */ public synchronized static void remove(String name, Serializable key) { if (name != null && key != null) { _GetCache(name, true).remove(key); } } public synchronized static void clear(String name) { _GetCache(name, true).removeAll(); }
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/10662.html