如何有效的管理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>

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

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

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

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

猜你喜欢