欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

还在深夜加班改Bug?雷军都点赞的防重提方案来了!,“那天凌晨2点,我因

来源: javaer 分享于  点击 22632 次 点评:101

还在深夜加班改Bug?雷军都点赞的防重提方案来了!,“那天凌晨2点,我因


前言

这是一个希望让每一位程序员按时下班的防止重复提交开源利器。

“那天凌晨2点,我因为重复提交漏洞被搞得半夜加班解决问题。  

现在,我只用一行代码 就解决了这个问题——  

这就是 resubmit ,一个普通程序员送给所有同行的防崩盘保险。”  

—— 一位不愿意透露姓名的 996 程序员

防重复提交

实现方式对比

实现方式对比

// 方案1:手动if校验(新手最爱)
if(!cache.contains(requestId)) { // 漏判并发问题 → 资损事故
    doBusiness();
}

// 方案2:AOP切面(老鸟的选择)
@Around("execution(* com..*Controller.*(..))") // 几十行代码+调试验证 → 加班秃头
public Object checkRepeat(ProceedingJoinPoint joinPoint) { 
    // 复杂参数解析...
}

// 方案3:resubmit(今天起换种活法)
@Resubmit(5000) // ◾ 1行注解 → 下班约会
public void business(String id) {
    // 安心写核心逻辑
}

参数理性美:精准到毫秒的防御方程

可以结合自己的实际业务,调整阈值。

防御场景 resubmit方案 传统方案
支付防连点 @Resubmit(3000) 前端按钮禁用+后端校验
表单防重复提交 @Resubmit(10000) Token机制+Session管理
秒杀防超卖 @Resubmit(0) Redis分布式锁

resubmit 适合 99% 中小项目,无缝整合 spring,纵享丝滑。

当然也支持分布式集群,支持灵活拓展。

相关栏目:

用户点评