jfinal的缓存处理

发布于 2021-12-02 16:40:50 字数 986 浏览 740 评论 11

@JFinal 你好,想跟你请教个问题:

我刚过了下jfinal官方提供的实例->jfinal_blog,想到以下几点,不知有价值没,如下:

1、

@Before(CacheInterceptor.class)
@CacheName("jfinal_cache")
public List<Blog> list() {}
这注解将就把CacheName为jfinal_cache的缓存全都清除了,要是再有个参数key,感觉就更细化了,例如:

@Before(CacheInterceptor.class)
@CacheName("jfinal_cache", "blogList")
public List<Blog> list() {}

---------------------------------------------------

2、
这个可以有吗?@CacheEvict("jfinal_cache", "blogList")放在方法上清除缓存
@CacheEvict("jfinal_cache", "blogList")
public List<Blog> list() {}
---------------------------------------------------

3、
看见已经有这样的实现,me.add(new TxByRegex(".*delete.*", false));
还可以有这样的吗?me.add(new CacheEvictByRegex(".*delete.*", false, "jfinal_cache", "blogList"));

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

柳若烟 2021-12-04 16:02:15

您好,在学习JFinal,感觉官方的JFinal手册讲的太简单了,在实际应用中会出现各种问题,比如说在登录验证的时候,我们的需求是不光验证一个表中的用户名密码,如果该表的用户名密码不同,那么就验证另外一张表的用户名密码,这样的话我怎么用Interceptor来实现对这两张表的验证,在JFinal手册中没有找见,我是初学者,不知道描述的是否清楚?

本王不退位尔等都是臣 2021-12-04 15:30:59

可以判断一下得到的 class,当得到的是代理类的时候,使用一下getSuperclass() 即可,具体可以看一下 jfinal 2.0 版本的 Model.java 最后一行代码,可以知道具体的做法

坐在坟头思考人生 2021-12-04 15:30:24

回复
非常感谢得到回复,我想了想还是不新增包了,用2.0包自带的字节码解决了。

眼眸 2021-12-04 15:08:24

回复
即便得到的是增强的class,也是可以获取到类和方法上的注解的,你试试,具体怎么解决的,能否贴出代码来分享一下,这可能是一个比较重要的需求

泛滥成性 2021-12-04 12:47:12

mark,学习到了不少东西

飘过的浮云 2021-12-04 10:55:28

:) 从提问到出结果,都很有收获。

悟红尘 2021-12-04 09:47:56

这块为啥有线程安全的问题,没看懂,改应该改哪里?

离去的眼神 2021-12-04 05:37:06

    感谢楼主支持哈!关于 1、2这两点,如果 cacheKey 是确定的那当然是可以的,但是有多数情况 cacheKey 是动态的,例如 list 方法可能要分页,那么 pageNumber 就要参与 cacheKey 的生成。

    关于第三点,也是可以的,只要正则能够满足清除缓存的要求就行。

    另外,有位朋友前段时间对 CacheInterceptor 进行并发测试时偶尔报异常,后来经代码审核发现 CacheInterceptor.java 第 118 行有线程安全问题,这个问题 jfinal 1.9 中会改进,有用到的童鞋,可以改下代码,使用 new XxxxRender 的方法创建具体的 render,避免线程安全问题

柳絮泡泡 2021-12-04 00:54:10

谢谢,还没看源码实现,只看了表面。

回眸一笑 2021-12-03 23:11:57

3ks,还可以这样啊,原来已经有。回去测试了看看效果。

怎言笑 2021-12-03 02:51:32

1.你直接使用@CacheName("jfinal_cache_blogList")

2.处理思路同上

3.我不说了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文