RepeatSubmit.java
1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package com.infoloop.tianting.annotation;
import com.infoloop.tianting.constant.RedisKeyConstants;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.TimeUnit;
/**
* 自定义注解防止重复提交
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RepeatSubmit {
/**
* 重复提交前缀
*/
String prefix() default RedisKeyConstants.REPEAT_SUBMIT;
/**
* 间隔时间,小于此时间视为重复提交
*/
int expire() default 3;
/**
* 时间单位
*/
TimeUnit timeUnit() default TimeUnit.SECONDS;
/**
* 分隔符
*/
String delimiter() default "&";
/**
* 提示消息
*/
String message() default "不允许重复提交,请稍后再试";
/**
* 是否根据登录用户ID加锁
*/
boolean isLockByLoginUser() default true;
/**
* 方法执行完自动释放锁
*/
boolean methodAutoUnlock() default true;
}