alibaba / jetcache

JetCache is a Java cache framework.
Apache License 2.0
5.15k stars 1.06k forks source link

在使用Mybatis-plus的接口方法时怎么缓存 #902

Closed LAIguapi closed 4 months ago

LAIguapi commented 4 months ago

例如我使用一个实现了MybatisService的类中的getById方法,这个方法是内部的,这个时候我怎么给他加上缓存,是需要在自己service里再包装一层吗?即: public T selectById(Long id) { return getById(id); } 或者说再创建一个Cache对象,等get到对象之后用Cache处理?

但是感觉这样似乎有点麻烦,失去了使用mp的便利性,不知道大佬是否能给出一些建议?

areyouok commented 4 months ago

你想问private方法怎么办,没有办法,private方法不好做AOP拦截。

要么自己用Cache接口手工搞,要么DAO搞成interface(本来就该这样)。

LAIguapi commented 4 months ago

你想问private方法怎么办,没有办法,private方法不好做AOP拦截。

要么自己用Cache接口手工搞,要么DAO搞成interface(本来就该这样)。

对的,这个查阅文档的时候看漏了,可以使用loader实现,感谢回复

然后还有点想问的:

  1. 在看config的时候注意到有penetrationProtect和penetrationProtectTimeout的配置,但是配置文件的参考文档里没有,我在配置文件中直接配置他们是OK的吗?
areyouok commented 4 months ago

有CachePenetrationProtect注解

LAIguapi commented 4 months ago

有CachePenetrationProtect注解

是的,我知道有这个注解,不过如果需要手动创建Cache的时候,不就使用不了注解了嘛,所以还是比较好奇这个能否在配置文件中处理,感谢

areyouok commented 4 months ago

手工配置的Cache更灵活,什么都能指定,yml里面配置的是默认值