package cn.com.btmu.art.framework.common.cache;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import cn.com.btmu.art.framework.util.FactoryBeanUtil;
/**
* 查询配置文件中所有实现了ICacheService接口的实现类
* 进行加载
*
* */
public class CacheInitialization{
protected final Logger logger = LoggerFactory.getLogger(CacheInitialization.class);
/**
* 项目启动的时候开启一个监听器去执行你要加载的代码
* servlet 有监听器
* 初始化缓存
*
* */
public void initialize(){
try {
//读取缓存配置文件
CacheUtil.initCache(null);
//启动load
Map cacheBeans = FactoryBeanUtil.getApplicationContext().getBeansOfType(ICacheService.class);
if(null!=cacheBeans && cacheBeans.size()>0) {
Set> entSet = cacheBeans.entrySet();
Iterator> iter = entSet.iterator();
while(iter.hasNext()){
Entry entBean = iter.next();
try{
if(null!=entBean){
//调ICacheService接口load方法
entBean.getValue().load();
}
}catch(Exception e){
logger.error(entBean.getValue()+"出错!",e);
}
}
}
} catch (Exception e) {
logger.error("启动所有实现缓存的类出错!",e);
}
}
}