当在网速不好,或者用户有意快速点击时,会出现这种情况:
这样导致一条数据在同一时间添加多条!需要防止这种行为!
防重复提交的方法有很多种,例如:
- 通过JavaScript屏蔽提交按钮
- 给数据库增加唯一键约束
- 利用Session防止表单重复提交
- 使用AOP自定义切入实现
…等等
本文通过自定义注解与Spring aop实现防重复提交流程做一个说明。
点击查看:自定义注解浅析
1.首先自定义注解:
import java.lang.annotation.*;
/**
* 避免重复提交
* @author
* @version
* @since
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AvoidRepeatableCommit {
/**
* 指定时间内不可重复提交,单位毫秒,默认10000毫秒
*/
long timeout() default 10000 ;
}
2.创建切面类:
/**
* 重复提交aop
*/
@Aspect//
@Component
publi