一、@Cacheable
@Cacheable 注解在方法上,表示该方法的返回结果是可以缓存的。第一次执行该方法,并将结果放到缓存中,以便于以后使用相同的参数调用该方法时从缓存中取。
1.@Cacheable的使用方法
第一步:在springboot主启动类上添加注解@EnableCaching
第二步:在需要缓存结果的方法上添加@Cacheable注解
2.@cacheable常用属性
1.value、cacheNames
@Cacheable 提供两个参数来指定缓存名:value、cacheNames
@Cacheable可以关联多个缓存,在执行方法之前,每个缓存都会被检查,只要有一个命中即可
2.key
缓存数据的值。默认使用的是方法参数的值,可以使用 spEL 表达式(是一种可以与一个基于spring的应用程序中的运行时对象交互的东西)去编写。
3.keyGenerator
可以按照我们自己的方法来生成key,一般和key二选一使用
4.condition
符合条件的情况下才缓存。
5.unless
否定缓存。当 unless 指定的条件为 true ,方法的返回值就不会被缓存。
6.sync
是否使用异步模式。默认是方法执行完,以同步的方式将方法返回的结果存在缓存中。
二、@CachePut
1.@CachePut的作用
@CachePut会尝试将方法的结果放入缓存中(当然也要看你设置的属性有关,比如将unless设置为true)
2.@CachePut的常用属性
@CachePut 跟 @Cacheable 有相同的参数属性(但是没有 sync 属性)
三、@CacheEvict
1.@CacheEvict的作用
可以使用@CacheEvict删除缓存
2.@CacheEvict的常用属性
跟 @Cacheable 和 @CachePut 一样,@CacheEvict 也要求指定一个或多个缓存,也指定自定义一的缓存解析器和 key 生成器,也支持指定条件(condition 参数)。