如何有效的管理Cache对象?

06-01-30 zrweng
在项目中合理的利用cache可减少数据库的访问,极大的提高系统的性能,这里我主要使用oscache并对oscache做一些简单的封装,但实际中cache的使用可能分布在各个模块里,业务层经常可能经常会有CacheManger.putCache(key,数据库查询获得的结果)CacheManager.getCache(key),操作,过于凌乱,不利于统一管理,想用caches.xml做配置,不知道有什么好的实现方法?

banq
2006-02-07 17:54
>想用caches.xml做配置,不知道有什么好的实现方法
使用AOP即可。

可参考Jdon框架的Cache实现,或Spring的AOP实现。

zrweng
2006-02-08 14:39
banq可否给个例子,比如:
public class Test(){
public List getOrganizeList(String id){
String key="organ_list";
if(CacheManager.getCache().get(key)==null){
//读取组织列表
CacheManager.getCache().put(key,organList);
}
return CacheManager.getCache().get(key);
}
}
我现在可以在Caches.xml中配置
<cache key="organ_list" class="com.zrweng.example.Test" method="getOrganizeList" />
这样就可以实现如上代码的效果不?这样业务层应该怎么调用这个getOrganizeList啊?

zrweng
2006-02-08 14:40
banq可否给个例子,比如:

public class Test(){
    public List getOrganizeList(String id){
       String key="organ_list";
       if(CacheManager.getCache().get(key)==null){
            //读取组织列表
           CacheManager.getCache().put(key,organList);
        }
        return CacheManager.getCache().get(key);
    }
}
<p class="indent">

我现在可以在Caches.xml中配置

<cache key="organ_list" class="com.zrweng.example.Test" method="getOrganizeList" />
<p class="indent">


这样就可以实现如上代码的效果不?这样业务层应该怎么调用这个getOrganizeList啊?

zrweng
2006-02-08 15:13
看来用动态代理是可以做到:)

猜你喜欢