SpringCache介绍
SpringCache是Spring提供的缓存框架。提供了基于注解的缓存功能。
SpringCache提供了一层抽象,底层可以切换不同的缓存实现(只需要导入不同的Jar包即可),如EHCache,Caffeine,Redis。
2个重要依赖已经导入:
org.springframework.boot spring-boot-starter-cache org.springframework.boot spring-boot-starter-data-redis
注解使用:
1 在启动类上加@EnableCaching
2.1 @CachePut标签
在controller层的UserController下的save方法上写入如下的代码:
@PostMapping @CachePut(cacheNames="userCache",key="#user.id") //如果使用spring Cache缓存数据,key的生成:userCache::1。user是从参数取到的。 //@CachePut(cacheNames="userCache",key="#result.id") //result是从返回值return取到的 //@CachePut(cacheNames="userCache",key="#p0.id") //@CachePut(cacheNames="userCache",key="#a0.id") //@CachePut(cacheNames="userCache",key="#root.args[0].id") public User save(@RequestBody User user){ userMapper.insert(user); return user; }
当对数据进行数据入库时自动存入redis缓存
注意key="#result.id"中的result取的是返回值返回的那个结果。 key="#user.id"的user取的是传入的参数。p0,a0,root.args[0]表示取的都是第1个参数。
2.2 @Cacheable(cacheNames="userCache",key="#id")
在方法上加入@Cacheable:方法执行时,会先查询是否有缓存,如果有,直接调用缓存;如果没有,将sql查询出来的数据存入缓存
2.3@CacheEvict(cacheNames = "userCache",key="#id") //key的形式 userCache::10
@CacheEvict(cacheNames="userCache",allEntries = true)
在方法上加入@CacheEvict:将一条或多条数据从缓存中删除
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。