一、导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
二、@EnableCaching
开启缓存功能:在启动类上加注解或者在redis配置类上加注解
三、@CacheConfig
在业务实现类上加此注解
参数:
- cacheName:当我们需要缓存的地方越来越多,可以使用@CacheConfig(cacheNames = "cacheName")注解在 class 之上来统一指定value的值,统一管理keys,这时可省略value,如果你在你的方法依旧写上了value,那么依然以方法的value值为准。
四、@Cacheable
根据key查找缓存,若缓存里有存在,直接从缓存里获取数据,若缓存不存在,则执行方法,将返回结果进行返回并缓存。
注:若多个查询结果为空会一直进行缓存,造成资源的浪费,添加
unless="#result == null"过滤空数据。
作用在方法上,类和方法都定义了cacheName或value,以方法上的为主。
@Override
@Cacheable(key = "'tenantId:' + #p0",unless="#result == null")
public List<NoticeConfigByTenantResponse> noticeConfigByTenant(String tenantId) {
.....
}