SpringBoot 接口幂等性设计——防重复提交终极方案
幂等性是指同一操作多次执行和一次执行的结果相同。支付、下单、转账等接口必须保证幂等性否则用户多次点击就会产生多笔订单。一、什么是幂等非幂等每次执行都会改变状态 请求1扣款100元 → 余额900 请求2扣款100元 → 余额800 ❌重复扣款 幂等多次执行结果与一次相同 请求1取消订单 → 订单已取消 请求2取消订单 → 订单已取消 ✅状态不变二、实现方案1. 数据库唯一索引// 订单表增加 order_no 唯一索引// 重复插入时数据库报错捕获后返回订单已存在TransactionalpublicOrdercreateOrder(OrderDTOdto){OrderordernewOrder();order.setOrderNo(OrderNoGenerator.generate());// ...try{orderMapper.insert(order);returnorder;}catch(DuplicateKeyExceptione){thrownewBusinessException(400,订单已存在请勿重复提交);}}2. Token Redis推荐RestControllerRequestMapping(/api)publicclassIdempotentController{AutowiredprivateStringRedisTemplateredisTemplate;GetMapping(/token)publicResultVOStringgetToken(){StringtokenIdUtil.simpleUUID();redisTemplate.opsForValue().set(idempotent:token,1,30,TimeUnit.MINUTES);returnResultVO.success(token);}PostMapping(/order)publicResultVO?createOrder(RequestBodyOrderDTOdto,RequestHeader(idempotent-token)Stringtoken){// 删除 Token删除成功说明是首次请求BooleandeletedredisTemplate.delete(idempotent:token);if(Boolean.FALSE.equals(deleted)){returnResultVO.error(400,请勿重复提交);}// 业务逻辑...returnResultVO.success(下单成功);}}前端流程1. 进入下单页 → 请求 /api/token 获取 Token 2. 提交订单 → header 携带 Token 3. 服务端校验 Token 是否存在存在则删除并执行业务 4. 重复提交 → Token 已不存在 → 拒绝 觉得有用的话点赞 关注【张老师技术栈】吧每周更新 Java/Python/爬虫 实战干货不让你白来。

相关新闻

深度解析 LangChain PIIMiddleware:守护大模型应用的隐私边界

深度解析 LangChain PIIMiddleware:守护大模型应用的隐私边界

关键词:LangChain,PIIMiddleware,隐私保护,PII 检测,中间件,数据脱敏 目录 引言1. PIIMiddleware 主要解决什么问题2. 内置 PIIMiddleware 的使用示例3. 自定义 PII 类型 3.1 正则表达式模式字符串3.2 自…

2026/7/9 1:24:42阅读更多 →
TripoSplat 与 3款主流方案对比:单图3D生成在质量与效率上的实测差异

TripoSplat 与 3款主流方案对比:单图3D生成在质量与效率上的实测差异

TripoSplat 与主流3D生成方案实测对比:技术边界与效率革命当一张2D照片在5秒内转化为可360度旋转的3D模型时,这背后是计算机视觉领域正在发生的范式转移。TripoSplat作为最新开源的3D高斯分布生成工具,正在重新定义单图重建的技术标准。但它在…

2026/7/9 1:24:42阅读更多 →
RabbitMQ amqp-cpp超详细实战教程

RabbitMQ amqp-cpp超详细实战教程

RabbitMQ 是一款高可靠、支持灵活路由、支持事务、支持死信/延时队列、消息低丢失的企业级消息中间件。相比于 Kafka、RocketMQ,RabbitMQ 最大优势是消息可靠性极高、路由模型丰富、业务解耦能力强,广泛用于订单业务、支付回调、任务分发、延时任务、服务…

2026/7/9 1:24:42阅读更多 →
2026短视频AI生产实践:爆款复刻逻辑解析与工具选型指南

2026短视频AI生产实践:爆款复刻逻辑解析与工具选型指南

在内容生产领域,短视频的迭代速度极快,创作者和团队对产能的要求越来越高。随着2026年AIGC技术的进一步落地,AI在视频创作中的角色已经从单纯的“辅助剪辑”转向了“结构化生成”。很多技术从业者和内容创作者都在关注抖音爆款视频复刻AI工具…

2026/7/9 2:29:46阅读更多 →
AI训练数据采集合规指南:从技术实现到法律边界

AI训练数据采集合规指南:从技术实现到法律边界

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 如果你是一名AI开发者或数据科学家,最近可能已经注意到一个关键问题:当大公司使用公开网络数据训练AI模型时&a…

2026/7/9 2:29:46阅读更多 →
浦东电子废弃物回收深度评测:废芯片回收哪家强?2026新排行

浦东电子废弃物回收深度评测:废芯片回收哪家强?2026新排行

当电子垃圾堆积如山, 那废芯片里潜藏的“城市矿山”已然成为回收行业全新的, 据联合国所发布的《2024全球电子废物监测报告》表明, 全球每年产出并产生超过6200万吨电子垃圾, 其中芯片类废弃物的增速急剧高达15%, 然而当前全球仅仅只有20%的电子垃圾终是由取得正规资格的回收处…

2026/7/9 2:29:46阅读更多 →
浅谈RAG对于企业AI落地的意义:让AI应用有依据地回答、生成和推进任务

浅谈RAG对于企业AI落地的意义:让AI应用有依据地回答、生成和推进任务

很多企业开始做大模型应用时,第一批想到的场景,往往是知识库问答。 把制度文件、产品手册、售后案例、项目资料上传进去,接上大模型,再做一个对话入口,员工就可以直接提问。 这个方向没有错。 因为企业 AI 落地&…

2026/7/9 2:29:46阅读更多 →
科研绘图生成AI工具推荐:2026年让论文图表更专业的5款神器

科研绘图生成AI工具推荐:2026年让论文图表更专业的5款神器

一、当前科研绘图生成的现实困境每年到了毕业季,无数大学生和研究生都会面临同一个难题:科研绘图生成到底该怎么做?根据教育部最新统计数据,2026年全国高校毕业生人数预计将突破1300万大关,论文写作压力空前巨大。许多…

2026/7/9 2:29:46阅读更多 →
AI 预测模型监控:数据漂移检测比精度下降更早暴露问题

AI 预测模型监控:数据漂移检测比精度下降更早暴露问题

AI 预测模型监控:数据漂移检测比精度下降更早暴露问题线上模型从 95% 准确率掉到 82%,等发现的时候已经影响了两周的业务决策。回头查数据才发现,输入特征分布从第 3 天就开始偏移了 —- 如果早做数据漂移检测,根本不用等到精度崩…

2026/7/9 2:24:46阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/8 5:12:14阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/8 7:00:12阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/8 2:26:06阅读更多 →
Three.js 着色器光效教程

Three.js 着色器光效教程

着色器光效 Shader Light ▶ 在线运行案例 案例合集: 三维可视化功能案例(threehub.cn)开源仓库github地址: https://github.com/z2586300277/three-cesium-examples400个案例代码: 网盘链接 你将学到什么 ShaderMaterial 自…

2026/7/9 0:04:37阅读更多 →
如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南

如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南

如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南 【免费下载链接】casemove A dedicated desktop app that enables you to move items in and out of storage units in CS2. 项目地址: https://gitcode.com/gh_mirrors/ca/casemove 还在为CS2存储单…

2026/7/9 0:04:37阅读更多 →
GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比

GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比

GBase 8a与MySQL 8.0:ALTER TABLE语法差异深度解析与实战指南1. 两种数据库的ALTER TABLE能力全景对比在数据库架构设计和运维过程中,表结构变更(DDL操作)是不可避免的需求。GBase 8a作为国产分析型数据库代表,与开源M…

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

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

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

2026/7/8 6:59:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

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

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

2026/7/8 13:42:39阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

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

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

2026/7/8 13:42:39阅读更多 →