主要用途:防止用户快速双击某个按钮,而前端没有禁用,导致发送两次重复请求。
幂等性要求参数相同的方法在一定时间内,只能执行一次。本质上是基于redis的分布式锁。大体有以下步骤:
在Controller添加@Idempotent注解即可。


public class DefaultIdempotentKeyResolver implements IdempotentKeyResolver {
@Override
public String resolver(JoinPoint joinPoint, Idempotent idempotent) {
// 获得方法名
String methodName = joinPoint.getSignature().toString();
// 将参数拼接成字符串
String argsStr = StrUtil.join(",", joinPoint.getArgs());
// md5计算一个key
return SecureUtil.md5(methodName + argsStr);
}
}


进入resolver方法里面

