@Cacheable运行流程

1、方法运行之前,先去查询Cache (缓存组件),按照cacheNames指定的名字获取;(CacheManager先获取相应的缓存) ,第一次获取缓存如果没有Cache组件会自动创建。
2、去Cache中查找缓存的内容,使用一个key,默认就是方法的参数;
key是按照某种策略生成的;默认是使用keyGenerator生成的,默认使用SimpleKeyGenerator生成key;
SimpleKeyGenerator生成key的默认策略;
如果没有参数; key=new SimpleKey();
如果有一个参数: key=参数的值
如果有多个参数: key=new SimpleKey(params);
3、没有查到缓存就调用目标方法;
4、将目标方法返回的结果,放进缓存中
@Cacheabl e标注的方法执行之前先来检查缓存中有没有这个数据,默认按照参数的值作为key去查询缓存,
如果没有就运行方法并将结果放入缓存;以后再来调用就可以直接使用缓存中的数据;
核心:
(1)使用CacheManager [ConcurrentMapCacheManager]按照名字得到Cache [ConcurrentMapCache]组件
(2)key使用keyGenerator生成的,默认是SimpleKeyGenerator

posted @ 2020-10-28 08:59  Tenton  阅读(516)  评论(0)    收藏  举报