预备知识:
缓存整体结构图:
整个框架,代码已经上传,下载地址如下:
https://download.csdn.net/download/wh_xia_jun/10470728
自定义cache系统,基于模板回调模式设计的,这方面的问题。
系统启动阶段形成缓存,需要做三件事情:
- 键的定义;
- 类基础上;
- 如何刷新;
刷数据,我们先定义一个接口,
/**
* 缓存刷新的回调接口
* 通过该接口缓存可以获得到要缓存的数据集合
*
*/
public interface RefreshCallBack {
/**
* @return
*/
public List setSourceList();
}
取得数据 由于各个类不相同,我们抽象出统一的接口,需要的时候,由具体类刷新数据。
public class BasBillInfo_Refresh implements RefreshCallBack{
/**
* 告诉缓存系统 如何取得对象数据
*/
@Override
@SuppressWarnings("unchecked")
public List setSourceList() {
//因为是注解的bean,所以默认bean的ID是class名,首字母小写dictionaryDaoImpl
BaseDao billDesignerDao = (BaseDao)Tool.getBean("baseDao");
List<EBasBillInfo> result = new ArrayList();
try {
//因为是多区划,所以去掉一些单一区划条件
result = billDesignerDao.findByHql("from EBasBillInfo order by billcode asc");
System.out.println("BasBillInfo_Refresh___>>>> "+result.size());
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
键的定义:也是要先定义一个接口: