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);
}
}
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);
}
}