Spring从3.1开始定义了org.springframework.cache.Cache
和 org.springframework.cache.CacheManager
接口来统一不同的缓存技术;并支持使用 JSR-107
注解简化我们开发;
提供支持多种缓存的实现。
主要接口有两个:
org.springframework.cache.Cache
:用于定义缓存的各种操作org.springframework.cache.CacheManager
:用于管理各个cache缓存组件
常用注解:
@Cacheable 通常用于配置方法,将方法的返回结果注入到缓存对象中(保存缓存)
如果缓存中有,则不调用方法,如果缓存没有,才会调用方法,将结果放入缓存
@CacheEvict 可用于类或方法,用于清空缓存(删除缓存) (失效模式使用该注解)
@CachePut :
强制执行方法并将返回结果放入缓存,而不是像 @Cacheable
那样首先从缓存中寻找方法返回结果是否存在缓存 (不影响方法执行更新缓存) (双写模式使用该注解)
@Caching 组合以上多个操作
@CacheConfig 用于对类进行配置,对整个类的缓存进行配置,可用 @Cacheable
取代
@Enab