当前位置: 首页 > news >正文

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

前言

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

创作目的

有时候手动加防止重复提交很麻烦,每次手动编写不利于复用。

所以希望从从简到繁实现一个工具,便于平时使用。

特性

  • 渐进式实现,可独立 spring 使用

  • 基于注解+字节码,配置灵活

  • 支持编程式的调用

  • 支持注解式,完美整合 spring

  • 支持整合 spring-boot

  • 支持方法级别、类级别注解

快速开始

maven 引入

<dependency><groupId>com.github.houbb</groupId><artifactId>resubmit-springboot-starter</artifactId><version>1.2.0</version>
</dependency>

测试代码

service 类

@Service
@Resubmit(value = 5000, enable = true)
public class ClassLevelService {@Resubmit(enable = false)public void queryInfoNoLimit(final String id) {System.out.println("queryInfoNoLimit: " + id);}public void queryInfoLimit(final String id) {System.out.println("queryInfoLimit: " + id);}}

测试类

@ContextConfiguration(classes = SpringConfig.class)
@RunWith(SpringJUnit4ClassRunner.class)
public class ResubmitSpringClassLevelTest {@Autowiredprivate ClassLevelService classLevelService;@Test(expected = ResubmitException.class)public void queryInfoLimitTest() {classLevelService.queryInfoLimit("1");classLevelService.queryInfoLimit("1");}@Testpublic void queryInfoNoLimitTest() {classLevelService.queryInfoNoLimit("1");classLevelService.queryInfoNoLimit("1");}}

如此就可以完成一个类级别支持的防重复提交。

注解

注解 @Resubmit 对应的属性如下,可以在方法或者类上。方法的级别优先于类。

属性说明默认值
value()多久内禁止重复提交,单位为毫秒。8000
enable()是否启用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流控控台待开始

相关文章:

  • 深入剖析Java类加载机制:双亲委派模型的突破与实战应用
  • tmux基本原理
  • Mybatis:灵活掌控SQL艺术
  • 探索DeepSeek提示词:关键策略与实用场景
  • ServletComponentScan 注解的作用
  • 某乎x-zse-96 破解(补环境版本)
  • win32相关(临界区)
  • 使用curlconverter网站快速生成requests请求包
  • day28 python训练营 类的定义与方法
  • 「 扑翼飞行器 」悬停飞行的信号串联滤波器设计
  • Typescript学习教程,从入门到精通,TypeScript 配置管理与编译器详解(19)
  • docker安装和镜像源替换
  • Python打卡训练营Day41
  • LCS 问题解释
  • CppCon 2014 学习:Practical Functional Programming
  • MCP架构深度解析:从基础原理到核心设计
  • ROS2与Unitree机器人集成指南
  • 【Java基础05】面向对象01
  • python中常用的内置属性built-in attributes
  • 《高等数学》(同济大学·第7版) 的 详细章节目录
  • 家具设计网站大全/在线资源链接
  • 那个网站详情页做的好/网络上市场推广
  • 做网站需要那些东西/青岛关键词网站排名
  • wordpress回收站 恢复/北京网站优化排名
  • 企业网站建设咨询/合肥网络推广公司
  • 高佣联盟做成网站怎么做/百度免费咨询