springboot @Cacheable使用

Posted lsys

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot @Cacheable使用相关的知识,希望对你有一定的参考价值。

加入依赖

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-cache</artifactId>
</dependency>

开启注解缓存

在启动类上加入 @EnableCaching

缓存注解

  1. @Cacheable :对方法结果进行缓存(主要用于GET方法)
    1. cacheNames/value:指定缓存主键(Cache)的名字
    2. key:缓存数据使用key,支持spEl语法
    3. keyGenerator:key的生成器。与key属性冲突,自定义 keyGenerator 必须实现org.springframework.cache.interceptor.KeyGenerator,default使用默认的参数值生成器
    4. cacheManager:指定缓存管理器,或者cacheResolver指定获取解析器
    5. cacheResolver: 与CacheManager冲突
    6. condition:指定条件满足才缓存,与unless相反。可以使用spEL语法
    7. unless:否定缓存,当满足条件时,结果不被缓存。可以获取到结果(#result)进行判断。支持spEL语法
    8. sync:是否异步模式。在该模式下unless不被支持。default=false
  2. @CachePut:先调用方法,在对结果进行缓存。(主要用于PUT方法),需要注意key的设置
  3. @CacheEvict:默认先调用方法,在删除缓存(主要用于DELETE方法)
    1. allEntries: 删除缓存组件中(cacheNames/value指定)所有的值
    2. beforeInvocation:在方法执行之前删除值,default=false
  4. @Caching:组合注解。针对复杂情况
  5. @CacheConfig:加载类上,用于设置缓存的共有属性

以上是关于springboot @Cacheable使用的主要内容,如果未能解决你的问题,请参考以下文章

Springboot集成Redis详细教程(缓存注解使用@Cacheable,@CacheEvict,@CachePut)

springboot2.0中使用@cacheable时如何为每个redis缓存配置不同的ttl

Springboot @Cacheable缓存过期时间

SpringBoot的Cacheable缓存入门

SpringBoot的Cacheable缓存入门

SpringBoot的Cacheable缓存入门