AOP实现防重复提交

YangeIT大约 4 分钟AOPAOP重复提交自定义注解

AOP实现防重复提交

1. 需求

需求分析

由于网络加载是比较耗时的操作,如果前端没有控制防重复点击,那么请求就会添加到服务端中。这样就会导致数据库中出现重复数据。

我们可以通过自定义注解@RepeatSubmit,实现防重复提交

2. 实现步骤

2.1 自定义防止重复提交的注解

@Inherited
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RepeatSubmit
{

}

3. 使用方法

在接口方法上添加@RepeatSubmit注解即可,注解参数说明:

参数类型默认值描述
intervalint5000间隔时间(ms),小于此时间视为重复提交
messageString不允许重复提交,请稍后再试提示消息

示例1:采用默认参数

@RepeatSubmit
public AjaxResult addSave(...)
{
    return success(...);
}

示例2:指定防重复时间和错误消息

@RepeatSubmit(interval = 1000, message = "请求过于频繁")
public AjaxResult addSave(...)
{
    return success(...);
}

参考文章

Spring Boot使用@RepeatSubmit 防止重复提交open in new window