zxl
2025-05-30 ba524bc13846fcbedb231b4bebc9a1a0927c5f70
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
57
58
59
60
61
62
63
64
package cn.lili.cache.limit.annotation;
 
 
import cn.lili.cache.limit.enums.LimitTypeEnums;
 
import java.lang.annotation.*;
 
/**
 * 限流注解
 *
 * @author Chopper
 * @since 2018-02-05
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface LimitPoint {
    /**
     * 资源的名字 无实际意义,但是可以用于排除异常
     *
     * @return String
     */
    String name() default "";
 
    /**
     * 资源的key
     * <p>
     * 如果下方 limitType 值为自定义,那么全局限流参数来自于此
     * 如果limitType 为ip,则限流条件 为 key+ip
     *
     * @return String
     */
    String key() default "";
 
    /**
     * Key的prefix redis前缀,可选
     *
     * @return String
     */
    String prefix() default "";
 
    /**
     * 给定的时间段 单位秒
     *
     * @return int
     */
    int period() default 60;
 
    /**
     * 最多的访问限制次数
     *
     * @return int
     */
    int limit() default 10;
 
    /**
     * 类型  ip限制 还是自定义key值限制
     * 建议使用ip,自定义key属于全局限制,ip则是某节点设置,通常情况使用IP
     *
     * @return LimitType
     */
    LimitTypeEnums limitType() default LimitTypeEnums.IP;
}