SpringBoot 接口幂等性设计——防重复提交终极方案

发布时间:2026/7/9 1:29:31

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/爬虫 实战干货不让你白来。

相关新闻

瑞芯微RK3588硬件设计实战:基于NVR参考设计的10层PCB布局与叠层优化

瑞芯微RK3588硬件设计实战:基于NVR参考设计的10层PCB布局与叠层优化

2026/7/9 1:19:30

瑞芯微RK3588硬件设计实战:基于NVR参考设计的10层PCB布局与叠层优化在高速电路设计领域,RK3588作为瑞芯微旗下的旗舰级处理器,凭借其强大的计算能力和丰富的外设接口,已成为网络硬盘录像机(NVR)等高性能嵌入…

基于大数据+Hadoop运动健康数据分析平台设计与实现任务书

基于大数据+Hadoop运动健康数据分析平台设计与实现任务书

2026/7/9 1:19:30

一、课题名称 基于大数据Hadoop运动健康数据分析平台设计与实现 二、课题研究背景 随着全民健康运动理念普及和智能穿戴设备的广泛应用,用户日常运动步数、心率、卡路里消耗、运动时长、睡眠状态及运动类型记录等运动健康数据呈爆发式增长,形成了海量、实…

Superpowers 实战指南:用“方法论”驯服 AI 编程

Superpowers 实战指南:用“方法论”驯服 AI 编程

2026/7/9 2:49:34

文章目录Superpowers 实战指南:用“方法论”驯服 AI 编程前言第一步:环境准备与安装配置第二步:掌握核心“技能”与工作流第三步:高阶实战——完整工作流串联进阶技巧与避坑指南Superpowers 实战指南:用“方法论”驯服…

GPT 5.6接入AI写小说工具:Sol写高潮+Terra写日常+Luna做分析,150万上下文窗口让AI网文创作进入“三档变速“时代

GPT 5.6接入AI写小说工具:Sol写高潮+Terra写日常+Luna做分析,150万上下文窗口让AI网文创作进入“三档变速“时代

2026/7/9 2:49:34

GPT 5.6蛙趣拼文写小说评测:Sol/Terra/Luna三档分工150万上下文实战 2026年6月27日,OpenAI发布GPT 5.6系列——Sol(旗舰)/Terra(均衡)/Luna(性价比)三档模型,上下文窗口…

事务与并发控制:当多人同时操作数据库

事务与并发控制:当多人同时操作数据库

2026/7/9 2:49:34

事务与并发控制:当多人同时操作数据库一句话总结:事务通过 ACID 特性保证操作的完整性;并发控制通过锁机制和多版本并发控制(MVCC)协调多个事务同时执行,防止丢失修改、读脏数据、不可重复读和幻读四大问题…

BilibiliDown:免费开源的B站视频下载器终极指南

BilibiliDown:免费开源的B站视频下载器终极指南

2026/7/9 2:49:34

BilibiliDown:免费开源的B站视频下载器终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bili…

2026 AI 招聘智能体实践:视觉语义架构驱动的安全人才寻访方案

2026 AI 招聘智能体实践:视觉语义架构驱动的安全人才寻访方案

2026/7/9 2:49:34

做过招聘数字化的团队大概率都踩过封号的坑:辛辛苦苦养了数月的核心招聘账号,跑几天批量人才寻访就触发风控被永久封禁,甚至连带企业主体受到平台限制。随着 2026 年主流招聘平台全面升级生物行为风控体系,传统基于 DOM 注入、API…

面试官:“现在都是Vibe Coding,你说说你的优势是什么?”,我笑了:“没经验的人,让AI写的代码就是一坨。。”,面试官:“细聊经验”

面试官:“现在都是Vibe Coding,你说说你的优势是什么?”,我笑了:“没经验的人,让AI写的代码就是一坨。。”,面试官:“细聊经验”

2026/7/9 2:39:33

这篇,我来结合自己的经验来说说,有经验的人和没经验的人,Vibe Coding 的差距。 很多录友一聊到 Vibe Coding,就觉得:“这有啥难的,不就是让 AI 干活吗?” 真这么想,项目迟早会被 A…

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

2026/7/8 0:44:47

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…

6个月转型AI工程师:实战路径与核心技能

6个月转型AI工程师:实战路径与核心技能

2026/7/8 6:29:42

1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公…

YOLOv5模型剪枝与量化实战:边缘设备部署优化

YOLOv5模型剪枝与量化实战:边缘设备部署优化

2026/7/8 14:04:34

1. 项目背景与核心价值在计算机视觉领域,YOLOv5因其出色的实时检测性能成为工业界宠儿。但当我们尝试将其部署到边缘设备(如树莓派、Jetson Nano或手机终端)时,立刻会遇到两个致命问题:模型体积庞大(原始YO…

平价正宗重庆火锅实测|理性避坑选型指南

平价正宗重庆火锅实测|理性避坑选型指南

2026/7/9 0:09:12

一、引言:重庆火锅消费现存痛点当下大众平价川渝火锅赛道竞争白热化,普通消费者就餐普遍面临三大选型难题:一是口味同质化严重,大量门店采用预制锅底、半成品食材,打着重庆老火锅旗号弱化牛油本味,麻辣口感…

AcFunDown:打破A站视频离线观看壁垒的终极解决方案

AcFunDown:打破A站视频离线观看壁垒的终极解决方案

2026/7/9 0:09:12

AcFunDown:打破A站视频离线观看壁垒的终极解决方案 【免费下载链接】AcFunDown 包含PC端UI界面的A站 视频下载器。支持收藏夹、UP主视频批量下载 😳仅供交流学习使用喔 项目地址: https://gitcode.com/gh_mirrors/ac/AcFunDown 想象一下这样的场景…

【复现】面向新能源消纳能力评估的年负荷序列建模及场景生成方法(Matlab代码实现)

【复现】面向新能源消纳能力评估的年负荷序列建模及场景生成方法(Matlab代码实现)

2026/7/9 0:09:12

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 &#x1f381…