admin管理员组

文章数量:1599541

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",这时函数还没执行,排除掉参数为空的情况

所以两者一个是对结果进行判断,决定是否放入缓存中,一个是对参数进行判断,决定是否放入缓存中

本文标签: 注解springcachecondition