注解 | 说明 |
---|---|
@EnableCaching | 开启缓存注解功能 |
@Cacheable | 在方法执行前 Spring 先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;若没有数据,调用方法并将方法返回值放到缓存中 |
@CachePut | 将方法的返回值放到缓存中 |
@CacheEvict | 将一条或多条数据从缓存中删除 |
使用步骤:
1. 引入缓存启动器:spring-boot-starter-cache,spring-boot-starter-data-redis
2. @EnableCaching:在启动类上,开启基于注解的缓存
3. @Cacheable:标在方法上,返回的结果会进行缓存
属性:value / cacheNames 缓存的名字
key:作为缓存中的 Key 值,可自己使用 SpEL 表达式指定(不指定就是参数值),缓存结果是方法返回值
名字 | 描述 | 示例 |
---|---|---|
methodName | 当前被调用的方法名 | #root.methodName |
targetClass | 当前被调用的目标对象 | #root.target |
targetClass | 当前被调用的目标对象类 | #root.targetClass |
args | 当前被调用的方法的参数列表 | #root.args [0] |
caches | 当前方法调用使用的缓存列表 (如@Cacheable(value ={"cache1","cache2"})),则有两个cache |
#root.cache [0].name |
argumentname |
方法参数的名字.可以直接 #参数名,也可以使用 #p0 或 # a0 的形式,0 代表参数的索引 | #iban、#a0、#p0 |
result | 方法执行后的返回值(仅当方法执行之后的判断有效,在@CachePut 使用于更新数据后可用) | #result |