springCache 注解的 unless 和 condition
两者都用于对缓存进行过滤,把不需要缓存的排除在外
public String value(Integer i){
return Math.random() > 0.5? String.valueOf():null;
}
上面这个函数,他有一般的机会返回integer的String,有一半的机会返回null。
如果我们不希望返回值为null时进行缓存,则使用unless="#result == null",排除掉返回值为null的结果
如果我们不希望参数为空的时候进行缓存,则需要使用condition = "#i==null",这时函数还没执行,排除掉参数为空的情况
所以两者一个是对结果进行判断,决定是否放入缓存中,一个是对参数进行判断,决定是否放入缓存中