Spring Cache快速入门

1.Spring Cache简介

Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。

Spring Cache 提供了一层抽象,底层可以切换不同的缓存实现,例如:

  • EHCache
  • Caffeine
  • Redis

2.Spring Cache常用注解

注解 说明
@EnableCaching 开启缓存注解功能,通常加在启动类上
@Cacheable 在方法执行前先查询缓存中是否有数据,如果有数据,则直接返回缓存数据;如果没有缓存数据,调用方法并将方法返回值放到缓存中
@CachePut 将方法的返回值放到缓存中
@CacheEvict 将一条或多条数据从缓存中删除

3.在Springboot项目中使用Spring Cache缓存

如果要使用Redis缓存,则导入Redis相关的依赖即可,使用什么缓存导入什么依赖即可

1.导入springCache和Redis相关的依赖

<dependency>
     <groupId>org.springframework.bootgroupId>
     <artifactId>spring-boot-starter-cacheartifactId>
dependency>

<dependency>
     <groupId>org.springframework.bootgroupId>
     <artifactId>spring-boot-starter-data-redisartifactId>
dependency>

2.在启动类上加入启动缓存的注解

@Slf4j
@SpringBootApplication
@EnableCaching  //开启缓存注解
public class CacheDemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(CacheDemoApplication.class,args);
        log.info("项目启动成功...");
    }
}

3.在方法上使用其他三个注解

    @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();
    }

参考视频

总结

该部分主要讲解springCache的四个注解和及其使用的方法,springCache主要是用于Springboot项目操作缓存的框架,应该注意不要导入多个缓存。

你可能感兴趣的:(Springboot,spring,java,后端)