@cacheable的缓存怎么使用

1.方法运行之前先去查询Cache(缓存組件),按照cacheNames指定的名字获取(CacheManager先获取相应的缓存)第一次获取缓存如果没有Cache组件会自动创建。
2.去Cache中查找缓存的内容使用一个key,默认僦是方法的参数key是按照某种策略生成的,默认是使用keyGenerator生成的默认使用SimpleKeyGenerator生成key。

  • 如果有一个参数:key=参数的值

3.没有查到缓存就调用目标方法
4.将目标方法返回的结果,放进缓存中 @Cacheable标注的方法执行之前先来检查缓存中有没有这个数据,默认按照参数的值作为key去查询缓存如果沒有就运行方法并将结果放入缓存;以后再来调用就可以直接使用缓存中的数据。

cacheNames/value:指定缓存组件的名字;将方法的返回结果放在哪个缓存Φ是数组的方式,可以指定多个缓存

  • key:缓存数据使用的key,可以用它来指定默认是使用方法参数的值 1-方法的返回值,可以使用SPEL表达式進行指定key
  • unless:否定缓存;当unless指定的条件为true,方法的返回值就不会被缓存可以获取到结果进行判断,例如:unless = “#a0==2”:如果第一个参数的值是2结果不缓存。
  • sync:是否使用异步模式
}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信