本文最后更新于22 天前,其中的信息可能已经过时,如有错误请发送邮件到qiqin-chang@qq.com
依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
常用注解:
| 注解 | 添加位置 | 说明 |
|---|---|---|
| @EnableCaching | 启动类 | 开启缓存注解功能 |
| @Cacheable | 方法 | 在方法执行前先查询缓存中是否存在数据,如有直接返回缓存数据;否则调用方法并将返回值放到缓存中 |
| @CachePut | 方法 | 将方法返回值放到缓存中 |
| @CacheEvict | 方法 | 从缓存中删除一条或多条数据 |
使用试例:
@PostMapping
@CachePut(cacheNames = "userCache",key = "#user.id") //如果使用Spring Cache 缓存数据,key的生成:userCache::2
//@CachePut(cacheNames = "userCache",key = "#result.id") // .导航对象
//@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;
}
@GetMapping
@Cacheable(cacheNames = "userCache",key = "#id") //key的生成:userCache::10
public User getById(Long id){
User user = userMapper.getById(id);
return user;
}
@DeleteMapping
@CacheEvict(cacheNames = "userCache",key = "#id") //key的生成:userCache::10
public void deleteById(Long id){
userMapper.deleteById(id);
}
@DeleteMapping("/delAll")
@CacheEvict(cacheNames = "userCache",allEntries = true)
public void deleteAll(){
userMapper.deleteAll();
}