JavaEE开发网——JavaEE开发者的社区,为JavaEE开发添加动力!
  首页 文档 博客 资源 论坛  
中搜索
标签浏览
ibatis (ibatis)
saf (存储转发(Store And Forward))
jms (Java消息服务)
security (安全)
javascript (JavaScript脚本语言)
json (JavaScript Object Notation)
ajax (AJAX动态网页技术)
mashup (Mash Up)
dom (文档对象模型)
rest (REST架构)
html (超文本标记语言)
saml (Security Assertion Markup Language)
portal (Portal)
annotation (注解)
php (PHP脚本语言)
bridge (桥接)
lucene (lucene)
junit (Java Unit测试框架)
ant (Java项目构建工具)
cvs (开源版本控制系统)
您的位置:文档 » 标签:cache
beadev2dev发表于07-07-02 00:00 | 阅读:698

  在JavaEEdev站点(http://www.javaeedev.com)的设计中,有几类数据是极少变化的,如ArticleCategory(文档分类),ResourceCategory(资源分类),Board(论坛版面)。在对应的DAO实现中,总是一次性取出所有的数据,例如:
List<ArticleCategory>  getArticleCategories();

  此类数据的特点是:数据量很小,读取非常频繁,变化却极慢(几天甚至几十天才变化一次),如果每次通过DAO从数据库获取数据,则增加了数据库服务器的压力。为了在不影响整个系统结构的情况下透明地缓存这些数据,可以在Facade一层通过Proxy模式配合ReadWriteLock实现缓存,而客户端和后台的DAO数据访问对象都不受影响:

  首先,现有的中间层是由Facade接口和一个FacadeImpl具体实现构成的。对ArticleCategory的相关操作在FacadeImpl中实现如下:
public  ...
1项,1页: 上一页 1 下一页