OsCacheImp.java
上传用户:wlfwy2004
上传日期:2016-12-12
资源大小:33978k
文件大小:2k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. package com.opensource.blog.service.cache.imp;
  2. import org.apache.commons.logging.Log;
  3. import org.apache.commons.logging.LogFactory;
  4. import java.util.*;
  5. import org.springframework.core.io.*;
  6. import com.opensource.blog.service.cache.Cache;
  7. import com.opensymphony.oscache.general.*;
  8. import com.opensymphony.oscache.base.*;
  9. public class OsCacheImp
  10.     implements Cache {
  11.   private static final Log logger = LogFactory.getLog(OsCacheImp.class);
  12.   private GeneralCacheAdministrator admin;
  13.   public OsCacheImp() {
  14.     admin = new GeneralCacheAdministrator();
  15.   }
  16.   public OsCacheImp(String profile) {
  17.     Properties properties = new Properties();
  18.     ClassPathResource classPathResource = new ClassPathResource(profile);
  19.     try {
  20.       logger.info("Init Cache...");
  21.       properties.load(classPathResource.getInputStream());
  22.       admin = new GeneralCacheAdministrator(properties);
  23.     }
  24.     catch (Exception ex) {
  25.       logger.error(ex);
  26.       admin = new GeneralCacheAdministrator();
  27.     }
  28.   }
  29.   /**
  30.    *
  31.    * @param key Object
  32.    * @param value Object
  33.    * @todo Implement this com.opensource.blog.service.cache.Cache method
  34.    */
  35.   public void add(Object key, Object value) {
  36.     this.admin.putInCache(String.valueOf(key), value);
  37.   }
  38.   /**
  39.    *
  40.    * @param key Object
  41.    * @return java.lang.Object
  42.    * @todo Implement this com.opensource.blog.service.cache.Cache method
  43.    */
  44.   public Object get(Object key) {
  45.     try {
  46.       return this.admin.getFromCache(String.valueOf(key));
  47.     }
  48.     catch (NeedsRefreshException ex) {
  49.       return null;
  50.     }
  51.   }
  52.   /**
  53.    *
  54.    * @param key Object
  55.    * @todo Implement this com.opensource.blog.service.cache.Cache method
  56.    */
  57.   public void remove(Object key) {
  58.     this.admin.flushEntry(key.toString());
  59.   }
  60.   /**
  61.    *
  62.    * @todo Implement this com.opensource.blog.service.cache.Cache method
  63.    */
  64.   public void removeAll() {
  65.     this.admin.flushAll();
  66.   }
  67. }