先写一个注解,代码如下:
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface FormRepeatSubmitValidation {
String value() default "请不要重复提交表单";
int expireSecond() default 30;
int[] argIdxs() default {1};
}
然后再写一个切面,代码如下:
/**
* <p>
* 防止表单重复提交 Aspect
* </p>
*
* @author lzy
* @date 2018/10/30.
*/
@Aspect
@Component
public class FormRepeatSubmitAspect {
//日志记录
private static final Logger logger = LoggerFactory.getLogger(FormRepeatSubmitAspect.class);
//redis客户端
@Autowired
private RedisTemplate<String, Object> redisTemplate;
//当前登陆会话上下文
@Autowired
private SessionContext sessionContext;
//缓存key前缀
private final String CACHE_PRE = "formR