缓存疑问

来源: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回答

好帮手慕小蓝

2023-02-02

同学你好~

1.缓存注解通常用于以查询为主的Service层方法上;

2.是不能用于DAO层上的,因为缓存的结果需要是代码运行之后产生的,而DAO层没有可执行代码;

3.该注解只用于查询的方法上时,是不会有问题的。因为缓存中的内容与异常没有关联,异常只会终止业务逻辑。

祝学习愉快~

0

0 学习 · 9886 问题

查看课程