技术派Cacheable注解实现缓存
选中新版正文中的对应文字,然后点“定位到这里”。
在前面介绍到Caffeine的时候,我们主要结合Spring的@Cachebale注解来使用方法级别缓存的;当时的主题主要在Caffeine,接下来我们就重点看一下Spring中缓存注解的相关知识点
重点注意,Spring的缓存注解不限定底层缓存实现,可以是Caffeine也可以是redis、memcache、guava
Spring在3.1版本,就提供了一条基于注解的缓存策略,在技术派中也实际使用到了这些
本文主要知识点:
- @Cacheable: 缓存存在,则使用缓存;不存在,则执行方法,并将结果塞入缓存
- @CacheEvit: 失效缓存
- @CachePut: 更新缓存
使用配置
使用实例
我们针对侧边栏的服务加上了缓存,主要考虑点是出于最大缓存效果

当然由于技术派中使用的场景不太多,在这盘教程中会对相关知识点进行扩展
核心配置
对缓存注解而言,单纯添加下面的依赖即可
org.springframework.boot
spring-boot-starter-cache
但是需要注意的是具体的缓存实现也是不可缺少的,比如技术派选择Caffeine做本地缓存,因此还添加了
com.github.ben-manes.caffeine
caffeine
缓存注解介绍
关于注解的介绍,我会mock几个更简单好理解的例子,与技术派的具体实现会不太一致,请勿care;如有疑问,本地搞个demo工程跑一下是最好的选择
1. @Cacheable
这个注解用于修饰方法or类,当我们访问它修饰的方法时,优先从缓存中获取,若缓存中存在,则直接获取缓存的值;缓存不存在时,执行方法,并将结果写入缓存
这个注解,有两个比较核心的设置
/**
* 与 cacheNames 效果等价
*/
@AliasFor("cacheNames")
String[] value() default {};
@AliasFor("value")
String[] cacheNames() default {};
/**
* 缓存key
*/
String key() default "";
cacheNames...
未能定位到原文的划线
已加入星球,可直接知识星球授权登录
二哥编程星球目前包含:
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
1. 微信扫右侧的优惠券加入知识星球
2. 解锁星球的实战项目教程和源码: 项目源码+教程获取
真诚点赞 诚不我欺
回复