Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。
Spring Cache 提供了一层抽象,底层可以切换不同的缓存实现,例如:EHCache,,Caffeine,Redis。
需要在pom.xml文件中插入依赖
在启动类或者其他配置类中加入@EnabeleCaching注解
在方法上标准缓存注解@Cacheable 第一次调用它注解的方法时会把方法的返回值存入缓存,再次调用该方法时,直接从缓存中得到这个数据。在苍穹外卖中加在根据分类id查询套餐的方法上,减少数据库的查询。
@CachePut 标注在方法上,每次调用方法该注解都会将方法的返回值作为value存入缓存中。
@CacheEvict 用于删除缓存中指定key的数据。allEntries属性表示是否清除缓存中的所有元素。默认时false。在苍穹外卖中对于新增套餐操作直接用key指定id精确删除;对于批量删除套餐,修改套餐,起售停售都可以使用allEntries属性来全部清理缓存数据
@CachConfig 可以标注在类上,用于抽取缓存的公共配置。以上三个注解的cacheNames都是指向同一个或同一批cache的,可以把@CachConfig的cacheNames抽取出来,然后将注解标注在类上。在苍穹外卖中就加在启动类上面,开启缓存注解功能。