@EnableCaching注解
@EnableCaching是由spring框架提供的,springboot框架对该注解进行了继承,该注解需要配置在类上(在SpringBoot中,通常配置在项目启动类上),用于开启基于注解的缓存支持
@Cacheable注解
@Cacheable注解也是由spring框架提供的,可以作用于类或方法(通常用在数据查询方法上),用于对方法结果进行缓存存储。注解的执行顺序是,先进行缓存查询,如果为空则进行方法查询,并将结果进行缓存;如果缓存中有数据,不进行方法查询,而是直接使用缓存数据
@CachePut
@CachePut 适用于更新数据的方法。目标方法执行完之后生效, @CachePut被使用于修改操作比较多,哪怕缓存中已经存在目标值了,但是这个注解保证这个方法依然会执行,执行之后的结果被保存在缓存中
@CachePut注解也提供了多个属性,这些属性与@Cacheable注解的属性完全相同,除了不支持sync属性。
更新操作,前端会把id+实体传递到后端使用,我们就直接指定方法的返回值从新存进缓存时的key=“#id” , 如果前端只是给了实体,我们就使用 key=“#实体.id” 获取key. 同时,他的执行时机是目标方法结束后执行, 所以也可以使用 key=“#result.id” , 拿出返回值的id
@CacheEvict 删除缓存
@CacheEvict注解是由Spring框架提供的,可以作用于类或方法(通常用在数据删除方法上),该注解
的作用是删除缓存数据。@CacheEvict注解的默认执行顺序是,先进行方法调用,然后将缓存进行清除