cassandra外部使用示例一

package com.huawei.support.navigation.dao;
import java.io.Serializable;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.huawei.support.cache.ICassCache;
import com.huawei.support.cache.impl.CacheConfigReader;
import com.huawei.support.cache.impl.CassCache;
import com.huawei.support.exception.ApplicationException;

@Service("navigationDaoCache")
public class NavigationDaoCache
{
    private static Log sLog = LogFactory.getLog(CassCache.class);
    private final static String CACHE_FUNCTION = "support.navigation.navigationdaocache";
    private final static String NODE_DOC_LIST = ".node_doc_list";
    private final static String NAVIGATOIN_CACHE = "navigationCache";
    private boolean IS_USE_CACHE = true;
    private final static long CACHE_LIFE_CYCLE = 10 * 60 * 1000;

    @Autowired
    @Qualifier("navigationDao")
    private NavigationDao navigationDao;

    @Autowired
    @Qualifier("cassCache")
    private ICassCache cache;

    public NavigationDaoCache() throws ApplicationException
    {
        // 从配置文件中读取是否使用缓存的配置
        IS_USE_CACHE = Boolean.parseBoolean(CacheConfigReader.getInstance()
                .getPropertyFromBinding(NAVIGATOIN_CACHE));
    }
    /**
     * 清除缓存对象数据
     */
    public void clearCache() throws ApplicationException
    {
        try
        {
            Class c = this.getClass();
            Method[] methods = c.getMethods();
            for (int i = 0; i < methods.length; i++)
            {
                Method method = methods[i];
                String methodStr = methods[i].getName();
                if (method.getModifiers() == 1 && methodStr.startsWith("get"))
                {
                    String cacheAreaName = CACHE_FUNCTION + "." + methodStr;
                    cache.remove(cacheAreaName);
                }
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
            throw new ApplicationException(" clearCache error", e);
        }
    }

你可能感兴趣的:(java,DAO,apache,cache,cassandra)