找回密码
 立即注册
首页 资源区 代码 resubmit v1.2.0 新特性支持类级别防止重复提交 ...

resubmit v1.2.0 新特性支持类级别防止重复提交

伯斌 2025-6-4 10:31:26
前言

resubmit 是一款为 java 设计的渐进式防止重复提交框架。
创作目的

有时候手动加防止重复提交很麻烦,每次手动编写不利于复用。
所以希望从从简到繁实现一个工具,便于平时使用。
特性


  • 渐进式实现,可独立 spring 使用
  • 基于注解+字节码,配置灵活
  • 支持编程式的调用
  • 支持注解式,完美整合 spring
  • 支持整合 spring-boot
  • 支持方法级别、类级别注解
快速开始

maven 引入
  1. <dependency>
  2.     <groupId>com.github.houbb</groupId>
  3.     resubmit-springboot-starter</artifactId>
  4.     <version>1.2.0</version>
  5. </dependency>
复制代码
测试代码

service 类
  1. @Service
  2. @Resubmit(value = 5000, enable = true)
  3. public class ClassLevelService {
  4.     @Resubmit(enable = false)
  5.     public void queryInfoNoLimit(final String id) {
  6.         System.out.println("queryInfoNoLimit: " + id);
  7.     }
  8.     public void queryInfoLimit(final String id) {
  9.         System.out.println("queryInfoLimit: " + id);
  10.     }
  11. }
复制代码
测试类
  1. @ContextConfiguration(classes = SpringConfig.class)
  2. @RunWith(SpringJUnit4ClassRunner.class)
  3. public class ResubmitSpringClassLevelTest {
  4.     @Autowired
  5.     private ClassLevelService classLevelService;
  6.     @Test(expected = ResubmitException.class)
  7.     public void queryInfoLimitTest() {
  8.         classLevelService.queryInfoLimit("1");
  9.         classLevelService.queryInfoLimit("1");
  10.     }
  11.     @Test
  12.     public void queryInfoNoLimitTest() {
  13.         classLevelService.queryInfoNoLimit("1");
  14.         classLevelService.queryInfoNoLimit("1");
  15.     }
  16. }
复制代码
如此就可以完成一个类级别支持的防重复提交。
注解

注解 @Resubmit 对应的属性如下,可以在方法或者类上。方法的级别优先于类。
属性说明默认值value()多久内禁止重复提交,单位为毫秒。8000enable()是否启用true拓展阅读

01-面试官:你们项目中是怎么做防重复提交的?
02-java 表单避免重复提交 resubmit 开源项目介绍
03-idempotent 幂等性介绍+如何防止重复提交?
04-简单聊一聊防重复提交
05-还在深夜加班改Bug?雷军都点赞的防重提方案来了!
06-v1.2.0 新特性类级别防止重复提交
开源矩阵

下面是一些从防止重复提交相关,整个系列的开源矩阵规划。
名称介绍状态resubmit防止重复提交核心库已开源rate-limit限流核心库已开源cache手写渐进式 redis已开源lock开箱即用的分布式锁已开源common-cache通用缓存标准定义已开源redis-config兼容各种常见的 redis 配置模式研发中quota-server限额限次核心服务待开始quota-admin限额限次控台待开始flow-control-server流控核心服务待开始flow-control-admin流控控台待开始
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册