spring-cache
https://docs.spring.io/spring/docs/current/spring-framework-reference/html/cache.html
注解说明
@CachePut : 这个注释可以确保方法被执行,同时方法的返回值也被记录到缓存中
@Cacheable : 当重复使用相同参数调用方法的时候,方法本身不会被调用执行,即方法本身被略过了,取而代之的是方法的结果直接从缓存中找到并返回了.
@CacheEvict : 标记要清空缓存的方法,当这个方法被调用后,即会清空缓存.
@Caching : 组合以上3种(@CachePut,@Cacheable,@CacheEvict)注解同时使用.
注解区别
那么@CachePut和@Cacheable区别是什么?
- 被@CachePut注解的方法无论缓存中有没有,一定会被执行,就是有也会执行,没有也会执行;然后执行完后的返回值会按照规则存储到缓存中 (关键字:一定会执行)
- 被@Cacheable注解的方法,如果缓存中没有,那么会被执行,然后返回的值会被存储到缓存中,如果缓存中有了,那么这个方法就不会被执行,直接从缓存中获取然后返回.(关键字:可能会执行)
使用场景
@CachePut和@Cacheable的使用场景是什么?如何使用?
- @Cacheable : GET 请求时使用
比如 :
1 |
|
- @CachePut : UPDATE POST 请求时使用
1 |
|
@CacheEvict 使用场景?
- DELETE 请求时使用
1 |
|
https://www.ibm.com/developerworks/cn/opensource/os-cn-spring-cache/