如何使用Memecached做为JFINAL的数据缓存?

糖豆 发布于 2013/05/28 13:41
阅读 2K+
收藏 1

@JFinal 你好,想跟你请教个问题:我这两天一直在做jfinal的示例demo,准备把公司里面的项目转到jfinal上面来,但遇到 了一个问题,原来我们的缓存是使用的xmemcached客户端,使用方法是用spring 的aop拦截service层的代码,在service运行前进行拦截,根据传入的参数来组成memcached的key向缓存进行查询是否存在,如果存在,直接返回,不再调用 service,如果不存在,那么执行service,并将执行结果保存到memcached中来。

现在由于要迁移到jfinal,也想用相同的思路解决这个问题,就看了拦截器,发现这个拦截器与spring的不同,它作用于controller层之上,可以让controller的方法不执行,但不能把在controler中的查询结果获取回来保存到memcached中,我只看到了ai.invoke(),但是它是一个void ,不能向memcached中保存数据。这样无法完成我的需求。

我知道您的ehcached缓存实现了相同的功能,但由于我们的缓存要求是分步式的memcached,所以不能使用ehcached插件,需要按ehcached插件的思路完成一份,能帮忙解释一下该如何处理吗?



加载中
0
JFinal
JFinal

    拦截器的形参 ActionInvocation ai 中可以得到 controller,可以很方便地进行各种操作,例如可以得到Controller中通过 setAttr 放入的值。

    多试试 ActionInvocation 中的API会有惊喜,另外强烈建议看看 com.jfinal.plugin.ehcache.CacheInterceptor 这个类中的代码,仿照它写一下一定能解决问题

0
share_code
share_code
有类似需求
0
D-_-D
D-_-D
亲,你们这个些功能 实现了吗? ehcache 虽然也提供分布式,但是还是想用memcache 的 ,我这边是从写了spring 的插件,和ehcache 做了结合,就用了spring+ehcache 的缓存,但是如何利用memcache 呢? 有实现吗?
返回顶部
顶部