侧边栏壁纸
  • 累计撰写 46 篇文章
  • 累计创建 38 个标签
  • 累计收到 2 条评论
隐藏侧边栏

@Cacheable使用(Spting及SpringBoot)

哒卟刘先生
2022-01-13 / 0 评论 / 0 点赞 / 114 阅读 / 1,188 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-01-13,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

spring的缓存注解,SpringBoot也可以使用,方便易用

@Cacheable使用

1,spring中使用

1)xml配置如下,启动Cache Annotation注解

<cache:annotation-driven cache-manager="cacheManager" />

2)对应方法加@cacheable注解

//value:指定缓存组件的名字  key:缓存数据使用的key,可以用来指定。默认即使用方法参数的值
// keyGenerator:key的生成器,可以自己指定key的生成器的组件id
@Cacheable(value = {"XXX"}, key = "XXX")

2.SpringBoot中使用

1)添加依赖

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

2)启动类加@EnableCaching开启注解缓存
3)同Spring一样加对应方法上加@Cacheable注解

3,其他缓存注解

@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:加载类上,用于设置缓存的共有属性

0

评论区