admin管理员组

文章数量:1599883

在使用springcache进行数据缓存的时候,有时候我们会有一个很常用的需求:我们希望在函数的返回值为空的情况下不进行数据缓存(毕竟都没有找到数据,还缓存干嘛呢→_→),于是我们想到了用condition来添加条件,condition:只有在满足指定条件时的时候才进行数据缓存,于是我们写上了condition = "#result != null",然后测试的时候发现居然没有缓存数据。QAQ!!!!

这里没有缓存数据的原因是:

@Cacheable的 condition 属性能使用的 SpEL 语言只有 #root 和获取参数类的 SpEL 表达式,不能使用返回结果的 #result,当我们想在返回值为空的情况不进行数据缓存,可以使用 unless,unless 的作用和 condition 的作用刚好相反,condition是在满足指定条件下才会进行缓存,而 unless 是在不满足条件下才会进行缓存,代码如下:

求个赞~~~ Thanks♪(・ω・)ノ

本文标签: 缓存数据springcachecondition