基于spring 方法级缓存的多种实现
spring.xml中注入ehcacheManager和ehCache对象,ehcacheManager是需要加载ehcache.xml配置信息,创建ehcache.xml中配置不同策略的cache。主要获取redisTemplate作为操作redis的对象。这里的缓存中的 key 就是参数 userName,value 就是 Account 对象。注意其中一个 @CacheEvict,其中的 Key 是用来指定缓存的 key 的,这里因为我们保存的时候用的是 account 对象的 name 字段,所以这里还需要从参数 account 对象中获取 name 的值来作为 key,前面的 # 号代表这是一个 SpEL 表达式,此表达式可以遍历方法的参数对象@CacheEvict// 清空accountCache 缓存public void updateAccount {updateDB;}@CacheEvict// 清空accountCache 缓存public void reload() {reloadAll()}@Cacheable// 缓存名叫 accountCachepublic Account getAccountByName {// 方法内部实现不考虑缓存逻辑,直接实现业务return getFromDB;}3.@CachePut 注释,这个注释可以确保方法被执行,同时方法的返回值也被记录到缓存中,实现缓存与数据库的同步更新。@Cacheable 的作用 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存
下载地址
用户评论