针对工作中会遇到用户重复点击按钮导致业务逻辑出现问题的情况,此时我们可以在后端控制在规定的时间内后端只接受一次前端的请求具体实现如下:
@Inherited
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RepeatSubmit {
/**
* 间隔时间(ms),小于此时间视为重复提交
*/
int interval() default 5000;
TimeUnit timeUnit() default TimeUnit.MILLISECONDS;
/**
* 提示消息 支持国际化 格式为 {code}
*/
String message() default "{repeat.submit.message}";
}
使用方法:在需要限制调用的接口上加上此注解就可以了
@GetMapping("/test/aliSend")
@RepeatSubmit()
public R aliSend(String phone) {
//业务逻辑
}