SpringCache之@CachePut注解的使用说明
背景
上一篇 我们讲解了@CacheEvict的使用方法及参数的说明。这篇我们讲讲怎么使用SpringCache中的@CachePut。
功能说明
我们在日常使用缓存的时候,不仅需要添加缓存、删除缓存,更需要更新缓存。Springcache中如何来实现缓存的更新呢?不错,@CachePut就能帮助我们来实现缓存的更新。
有的时候我们可以将@CachePut就是一个触发器,虽然这样说不太正确,但是很有助于我们的理解,当我们每次调用被他注解的方法的时候,就会触发这个触发器,来清除对应指定key的缓存或者是更新缓存。
可看一下两个注解的逻辑:
@Cacheable:查找缓存——>有就返回——>没有就执行方法体——>将结果缓存起来
@CachePut:执行方法体——>将结果缓存起来。
根据不同返回结果执行不同逻辑
- 如果返回结果为null,当我们再次进行该key值的查询的时候,程序会再查一次数据库,这个时候,相当于我们的@CacheEvict注解使用情况
- 当返回的结果不是null时,这样会进行该key值的缓存的更新操作,更新的缓存值为返回的数据值。
@CachePut和Cacheable的区别
- @CachePut 负责增加、更新缓存
- @Cacheable 负责查询缓存,如果没有命中对应的缓存,则执行该方法,并且将方法查询到的结果添加到我们缓存中;如何命中的对应的缓存,则直接返回数据。
- @Cacheable适用于查询数据的方法上,@CachePut适用于更新数据的方法上。
- 官方强烈不推荐将@Cacheable和@CachePut两个注解用到同一个方法上。
今天关于@CachePut的讲解到这里就结束了。欢迎大家留言交流,也欢迎大家关注我的工种昊《coder练习生》