springboot @Cacheable使用
Posted lsys
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot @Cacheable使用相关的知识,希望对你有一定的参考价值。
加入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
开启注解缓存
在启动类上加入 @EnableCaching
缓存注解
@Cacheable
:对方法结果进行缓存(主要用于GET方法)cacheNames/value
:指定缓存主键(Cache
)的名字key
:缓存数据使用key
,支持spEl
语法keyGenerator
:key
的生成器。与key
属性冲突,自定义keyGenerator
必须实现org.springframework.cache.interceptor.KeyGenerator
,default
使用默认的参数值生成器cacheManager
:指定缓存管理器,或者cacheResolver
指定获取解析器cacheResolver
: 与CacheManager
冲突condition
:指定条件满足才缓存,与unless
相反。可以使用spEL
语法unless
:否定缓存,当满足条件时,结果不被缓存。可以获取到结果(#result
)进行判断。支持spEL
语法sync
:是否异步模式。在该模式下unless
不被支持。default=false
@CachePut
:先调用方法,在对结果进行缓存。(主要用于PUT方法),需要注意key
的设置@CacheEvict
:默认先调用方法,在删除缓存(主要用于DELETE方法)allEntries
: 删除缓存组件中(cacheNames/value
指定)所有的值beforeInvocation
:在方法执行之前删除值,default=false
@Caching
:组合注解。针对复杂情况@CacheConfig
:加载类上,用于设置缓存的共有属性
以上是关于springboot @Cacheable使用的主要内容,如果未能解决你的问题,请参考以下文章
Springboot集成Redis详细教程(缓存注解使用@Cacheable,@CacheEvict,@CachePut)