SpringCache @Cacheable 在同一个类中调用方法,导致缓存不生效的问题及解决办法

由于项目需要使用SpringCache来做一点缓存,但自己之前没有使用过(其实是没有听过)SpringCache,于是,必须先学习之。

显然,就是在同一个类中,MethodA 调用了 MethodB,那么 MethodB 上面的 @Cacheable 注释就会失效!

而解决办法,人家也说了,如下图:

就是:SpringAOP 无法解决,需要使用 AspectJ 来解决!

那么,接下来的问题就是:如何从 SpringAOP 切换到 AspectJ 呢?

网上搜索了一大堆(至于当时自己到底是如何一步一步搜索到结果的,已经记不得了),最后找到的解决办法如下:

第一步:

SpringCache默认的 mode = proxy,需要将其设置为mode = aspectj,如下2图所示

以前的:

修改后:

那这个 mode 到底是个什么意思呢?查看 XSD 文件,说明如下:

相关推荐
东阳马生架构13 小时前
商品中心—1.B端建品和C端缓存的技术文档一
缓存·商品系统
让我上个超影吧18 小时前
黑马点评【缓存】
java·redis·缓存
blammmp20 小时前
Redis: List类型
数据库·redis·缓存
暴躁茹20 小时前
std::make_shared简化智能指针 `std::shared_ptr` 的创建过程,并提高性能(减少内存分配次数,提高缓存命中率)
缓存
汪小白JIY1 天前
【C#】多级缓存与多核CPU
缓存·c#·多级缓存
Zfox_1 天前
Redis:渐进式遍历
服务器·数据库·redis·缓存
CHEN5_021 天前
Redis分布式缓存(RDB、AOF、主从同步)
redis·分布式·缓存
在肯德基吃麻辣烫2 天前
《Redis》持久化
数据库·redis·缓存
sclibingqing2 天前
SpringBoot项目使用Redis作为数据缓存
spring boot·redis·缓存
珹洺2 天前
MyBatis实战指南(七)MyBatis缓存机制
java·数据库·sql·安全·缓存·oracle·mybatis