SpringCache缓存介绍
SpringCache注解在SpringCache中提供了很多缓存操作的注解常见的是以下的几个注解 说明EnableCaching 开启缓存注解功能Cacheable 在方法执行前spring先查看缓存中是否有数据如果有数据则直接返回缓存数据若没有数据调用方法并将方法返回值放到缓存中CachePut 将方法的返回值放到缓存中CacheEvict 将一条或多条数据从缓存中删除2.1 CachePut注解CachePut 说明​ 作用: 将方法返回值放入缓存​ value: 缓存的名称, 每个缓存名称下面可以有很多key​ key: 缓存的key ---------- 支持Spring的表达式语言SPEL语法使用示例在save方法上加注解CachePut。当前UserController的save方法是用来保存用户信息的我们希望在该用户信息保存到数据库的同时也往缓存中缓存一份数据我们可以在save方法上加上注解 CachePut用法如下CachePut(value userCache, key #user.id) PostMapping public User save(User user){ userService.save(user); return user; }key的写法如下​ #user.id : #user指的是方法形参的名称, id指的是user的id属性 , 也就是使用user的id属性作为key ;​ #user.name: #user指的是方法形参的名称, name指的是user的name属性 ,也就是使用user的name属性作为key ;​ #result.id : #result代表方法返回值该表达式 代表以返回对象的id属性作为key ​ #result.name : #result代表方法返回值该表达式 代表以返回对象的name属性作为key 2.2 CacheEvict注解CacheEvict 说明​ 作用: 清理指定缓存​ value: 缓存的名称每个缓存名称下面可以有多个key​ key: 缓存的key ---------- 支持Spring的表达式语言SPEL语法使用示例 在 delete 方法上加注解CacheEvict。当我们在删除数据库user表的数据的时候我们需要删除缓存中对应的数据此时就可以使用CacheEvict注解, 具体的使用方式如下:CacheEvict(value userCache,key #p0) //#p0 代表第一个参数 //CacheEvict(value userCache,key #id) //#id 代表变量名为id的参数 DeleteMapping(/{id}) public void delete(PathVariable Long id){ userService.removeById(id); }2.3 Cacheable注解Cacheable 说明:​ 作用: 在方法执行前spring先查看缓存中是否有数据如果有数据则直接返回缓存数据若没有数据调用方法并将方法返回值放到缓存中​ value: 缓存的名称每个缓存名称下面可以有多个key​ key: 缓存的key ---------- 支持Spring的表达式语言SPEL语法使用情况1在getById上加注解CacheableCacheable(value userCache,key #id) GetMapping(/{id}) public User getById(PathVariable Long id){ User user userService.getById(id); return user; }当我们在测试时查询一个数据库不存在的id值第一次查询缓存中没有也会查询数据库。而第二次再查询时会发现不再查询数据库了而是直接返回那也就是说如果根据ID没有查询到数据,那么会自动缓存一个null值。我们能不能做到当查询到的值不为null时再进行缓存如果为null则不缓存呢? 答案是可以的。使用情况2 缓存非null值。在Cacheable注解中提供了两个属性分别为 condition unless 。condition : 表示满足条件时才缓存数据;unless : 表示满足条件则不缓存 ; 与上述的condition是反向的 ;Cacheable(value userCache,key #id, unless #result null) GetMapping(/{id}) public User getById(PathVariable Long id){ User user userService.getById(id); return user; }注意 此处我们使用的时候只能够使用 unless 因为在condition中我们是无法获取到结果 #result的。

相关新闻

Grok It:让 Claude Code 和 Codex 直接调用 xAI/Grok 能力的 Agent 插件

Grok It:让 Claude Code 和 Codex 直接调用 xAI/Grok 能力的 Agent 插件

背景 2026 年 5 月中旬,xAI 在 accounts.x.ai 正式开放了 OAuth 登录流程——SuperGrok 或 X Premium 订阅用户可以通过 OAuth 2.0 授权,直接调用 Grok 的内置工具(x_search、web_search、图像/视频生成),而且优先消耗…

2026/7/1 2:32:03阅读更多 →
按照这个方法真的领到了8元,千问新用户专属220372

按照这个方法真的领到了8元,千问新用户专属220372

按照这个方法真的领到了8元,超简单,实打实的,可点奶茶外卖.千问无门槛优惠券 大数据推给有需要的人,下载千问,输入口令:千问新用户专属220372,就可以领取啦按照这个方法真的领到了8元这个是千问…

2026/7/1 2:32:03阅读更多 →
企业做GEO内容发布,哪些做法容易出风险?

企业做GEO内容发布,哪些做法容易出风险?

GEO的核心之一,是通过公开内容帮助AI更好地理解企业、品牌和产品。但这并不意味着企业可以无限制批量铺稿,更不意味着可以用低质量内容去“喂”AI。 如果操作不当,GEO内容不仅不能提升信任,反而可能带来平台违规、账号受限、品牌口…

2026/7/1 2:32:03阅读更多 →
选私域SaaS工具,最容易踩什么坑?

选私域SaaS工具,最容易踩什么坑?

私域SaaS的采购决策,正在变成一笔算不清的账。工具越上越多,从企微SCRM到直播软件到小程序商城,单点工具凑了六七个,数据却各管一段。最后复盘发现,真正在用的功能不到三成,剩下七成是"为了不留短板&q…

2026/7/1 3:37:07阅读更多 →
基于信创云与云原生架构的医疗影像PACS系统实战指南

基于信创云与云原生架构的医疗影像PACS系统实战指南

大家好,我是专注于医疗信息化与云计算领域的技术博主。在近期参与的一个医院影像科系统升级项目中,我们面临了传统PACS系统在数据孤岛、扩展性差、运维成本高以及国产化替代需求下的多重挑战。经过多轮技术选型与验证,最终基于“信创云”架构…

2026/7/1 3:37:07阅读更多 →
Acrobat Pro DC2026安装步骤(附安装包)Acrobat Pro DC2026下载安装教程(图文步骤)

Acrobat Pro DC2026安装步骤(附安装包)Acrobat Pro DC2026下载安装教程(图文步骤)

文章目录软件介绍Acrobat Pro DC2026 安装教程Acrobat Pro DC2026如何给PDF添加电子签名?手把手教你操作软件介绍 Adobe Acrobat 是 Adobe 推出的专业 PDF 处理工具,支持文档创建、编辑、格式转换等操作。日常办公中处理合同、标书、报告等文件时&#…

2026/7/1 3:37:07阅读更多 →
点亮你的微光,你就是自己的太阳 ——2026体彩健康公益行·都市舒压艺术节在京落幕

点亮你的微光,你就是自己的太阳 ——2026体彩健康公益行·都市舒压艺术节在京落幕

“点亮你的微光,把世界照亮,笑容在荡漾,负面都退让......你就是自己的太阳......”伴随着激昂而温暖的歌声,6月27日,由北京市体育彩票管理中心主办的“点亮你的微光”2026体彩健康公益行都市舒压艺术节,在7…

2026/7/1 3:37:07阅读更多 →
从聊天到执行:AI Agent开发实战指南与范式迁移解析

从聊天到执行:AI Agent开发实战指南与范式迁移解析

如果你最近还在把 ChatGPT 当成一个“更聪明的聊天机器人”来用,那你可能已经落后了。这不是危言耸听,而是 OpenAI 正在通过一系列产品迭代,清晰地传达一个信号:单纯的“聊天”价值正在被稀释,未来的核心是“执行”。从…

2026/7/1 3:37:07阅读更多 →
Agentic AI的真正价值:认知复利与工作流进化,而非单纯速度提升

Agentic AI的真正价值:认知复利与工作流进化,而非单纯速度提升

最近和几个做AI应用的朋友聊天,发现一个挺有意思的现象:大家一提到“Agentic AI”(智能体AI),第一反应往往是“它能自动执行任务,肯定更快”。但折腾了几个项目下来,我发现,“快”可…

2026/7/1 3:32:07阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/30 4:03:30阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/30 4:36:27阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/1 0:01:44阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/1 0:01:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/1 0:01:44阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/1 0:01:44阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/1 0:01:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/1 0:01:44阅读更多 →