Springboot使用@Cacheable注解实现数据缓存

本文介绍如何在Springboot中通过@Cacheable注解实现数据缓存。在每次调用添加了@Cacheable注解的方法(需要缓存功能的方法)时,Spring 会检查指定参数的指定目标方法是否已经被调用过,如果有就直接从缓存中获取方法调用后的结果,如果没有就调用方法并缓存结果后返回给用户。下次调用直接从缓存中获取。

1、添加 @EnableCaching

​ 使用 @EnableCaching 标识在 SpringBoot 的主启动类上,开启基于注解的缓存。

@EnableCaching
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application .class, args);
    }
}

2、添加@Cacheable

在需要缓存的方法上添加@Cacheable注解。以后查询相同的数据,直接从缓存中取,不需要调用方法。

@Cacheable(value = "areaTreeData")
public CommonResult<List<Map<String, Object>>> queryTreeData(Long pId, Long lv) {
  Map<String, Object> map = new HashMap<>();
  map.put("state", 1);
  List<Map<String, Object>> list = getTreeData(map, pId, lv);
  return new CommonResult<>(list);
}

注意:

1、返回的数据类型必须支持序列化或实现了Serializable接口,否则数据没法缓存。

2、只有直接调用该方法才能缓存,不能通过类中的其他方法来调用。







扫描下方二维码,关注公众号:程序进阶之路,实时获取更多优质文章推送。


扫码关注

评论