import java.lang.annotation.*;
/**
* 自定义 幂等性注解
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Idempotent {
/**
* 是否携带token 组装key
*
* @return
*/
boolean token() default true;
/**
* 自定义的传入参数序列作为key的后缀,默认的全部参数作为key的后缀拼接。参数定义示例:{0,1}
* @return
*/
int[] customKeysByParameterIndexArr() default {};
/**
* 过期时间,单位秒,默认60秒
* @return
*/
long expirMillis() default 60;
}
如何使用?
加在需要的接口上面即可,
@Idempotent(expirMillis = 5)
可以自定义过期时间,限制时间