spring从3.1开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术并支持使用JCache(JSR-107)注解简化开发.
Cache接口为缓存的组件规范定义,包含缓存的各种操作集合.
Cache接口下Spring提供了各种xxxCache的实现;如RedisCache,EhCacheCache,ConcurrentMapCache等
每次调用需要缓存功能的方法时,spring会检查指定参数的指定的目标方法是否已经被调用过;如果有就直接从缓存中获取方法调用后的结果,如果没有就调用方法并缓存结果后返回用户,下次调用直接从缓存中获取.
使用spring缓存抽象时需要注意:
确定方法需要被缓存以及他们的缓存策略
从缓存中读取之前缓存存储的数据
几个重要概念&缓存注解
Cache | 缓存接口,定义缓存操作. 实现有:RedisCache\EhCacheCache\ConcurrentMapCache等 |
CacheManager | 缓存管理器,管理各种缓存组件 |
@Cacheable | 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存 |
@CacheEvict | 清空缓存 |
@CachePut | 保证方法被调用,又希望结果被缓存.缓存更新. |
@EnableCaching | 开启基于注解的缓存 |
keyGenerator | 缓存数据时key生成策略 |
serialize | 缓存数据时value序列化策略 |