简单Ehcahe封装详解编程语言

  
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

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论