缓存疑问
来源:5-11 利用Redis缓存加速响应
小白0719
2023-02-02 14:07:46
老师好, @Cacheable(value = "listCategoryForCustomer")这个注解一般放在哪个方法上呢?
能直接放在Mapper接口上吗?
Service方法一般还有其它业务啊;如果涉及到判断,抛出异常这种;如果有缓存直接拿到缓存就不会进入方法判断了,是这样吗?
比方说直接拿到缓存后 System.out.println("缓存了吗"); 这句代码就不会执行了
@Override
@Cacheable(value = "ecursionCategory")
public List ecursionCategory(){
List <CategoryVo> categotyVoList=new ArrayList<>();
System.out.println("缓存了吗");
recursion(categotyVoList,0);
return categotyVoList;
}1回答
同学你好~
1.缓存注解通常用于以查询为主的Service层方法上;
2.是不能用于DAO层上的,因为缓存的结果需要是代码运行之后产生的,而DAO层没有可执行代码;
3.该注解只用于查询的方法上时,是不会有问题的。因为缓存中的内容与异常没有关联,异常只会终止业务逻辑。
祝学习愉快~
相似问题