Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单的加一个注解,就能实现缓存功能。
Spring Cache 提供了一层抽象,底层可以切换为不同cache来实现。实际就是通过CacheManager接口来统一不同缓存技术。
针对不同的缓存技术需要实现不同的CacheManager:


在SpringBoot中,加上上面的注解,就可以实现缓存,具体的实现见下面
使用实例:
@CachePut(value = "userCache",key = "#user.id")//user:获取方法的参数
@CacheEvict(value = "userCache",key = "#id")
@Cacheable(value = "userCache",key="#id",condition = "#result != null")
@CacheEvict(value = "setmealCache",allEntries = true)//allEntries 表示清除setmealCache分类下面的所有缓存数据
注释中参数的含义:
1.引入相关的依赖(引入starter-web即可将缓存存储在内存中)
org.springframework.boot spring-boot-starter-web compile
2.在项目启动类上加上@EnableCaching注释

3.注入CacheManager

4. 给需要缓存的方法加上注释

注意:如果方法的返回值为一个List,那么对应的类要实现序列化接口
通过以上的操作,可以使缓存暂时存在内存中,当项目关闭时,缓存就会删除。这是不可取的,所以需要将缓存存在redis中来克服这个问题,如下:
处理完成上面的步骤,还得进行如下3个操作:
1.引入reids和cache的依赖
org.springframework.boot spring-boot-starter-cache org.springframework.boot spring-boot-starter-data-redis
2.配置好redis

3.配置好cache
