12.9每日总结

5.8 Cache 缓存

1、使用 Ehcache 缓存

    ActiveRecord 可以使用缓存以大大提高性能,默认的缓存实现是 ehcache,使用时需要引入 ehcache 的 jar 包及其配置文件,以下代码是Cache使用示例:

  1. public void list() {
  2.     List<Blog> blogList = Blog.dao.findByCache("cacheName", "key", "select * from blog");
  3.     setAttr("blogList", blogList).render("list.html");
  4. }

     上例findByCache方法中的cacheName需要在ehcache.xml中配置如:<cache name="cacheName" …>。此外Model.paginateByCache(…)、Db.findByCache(…)、Db.paginateByCache(…)方法都提供了cache支持。在使用时,只需传入cacheName、key以及在ehccache.xml中配置相对应的cacheName就可以了。

 

2、使用任意缓存实现

     除了要把使用默认的 ehcache 实现以外,还可以通过实现 ICache 接口切换到任意的缓存实现上去,下面是个简单提示意性代码实现:

  1. public class MyCache implements ICache {
  2.   public <T>get(String cacheName, Object key) {
  3.   }
  4.  
  5.   public void put(String cacheName, Object key, Object value) {
  6.   }
  7.  
  8.   public void remove(String cacheName, Object key) {
  9.   }
  10.  
  11.   public void removeAll(String cacheName) {
  12.   }
  13. }

     如上代码所示,MyCache 需要实现 ICache 中的四个抽象方法,然后通过下面的配置方式即可切换到自己的 cache 实现上去:

  1. ActiveRecordPlugin arp = new ActiveRecordPlugin(...);
  2. arp.setCache(new MyCache());

    如上代码所示,通过调用 ActiveRecordPlugin.setCache(...) 便可切换 cache 实现。

posted @ 2023-12-09 19:44  听着DJ读童话  阅读(4)  评论(0)    收藏  举报