SpringCache提供了一层抽象,底层可以切换不同的缓存实现。例如:
EHChche
常用注解:
@EnableCaching 开启缓存注解功能,通常加在启动类上
@Cacheable 在方法执行前先查询缓存中是否有数据,如果有则直接返回数据,如果没有则调用方法并将方法返回值放到缓存中去
@CachePut 将方法的返回值放到缓存中去
@CacheEvice 将一条或多条数据从缓存中删除

- package com.itheima;
-
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.cache.annotation.EnableCaching;
-
- @Slf4j
- @SpringBootApplication
- @EnableCaching
- public class CacheDemoApplication {
- public static void main(String[] args) {
- SpringApplication.run(CacheDemoApplication.class,args);
- log.info("项目启动成功...");
- }
- }

- @PostMapping
- @CachePut(cacheNames = "userCache", key = "#user.id")
- public User save(@RequestBody User user) {
- userMapper.insert(user);
- return user;
- }

- @GetMapping
- @Cacheable(cacheNames = "userCache",key = "#id")
- public User getById(Long id){
- User user = userMapper.getById(id);
- return user;
- }

- @DeleteMapping
- @CacheEvict(cacheNames = "userCache",key = "#id")
- public void deleteById(Long id){
- userMapper.deleteById(id);
- }

- @DeleteMapping("/delAll")
- @CacheEvict(cacheNames = "userCache", allEntries = true)
- public void deleteAll() {
- userMapper.deleteAll();
- }