支持自定义注解实现接口限流
This commit is contained in:
		| @@ -14,5 +14,5 @@ import java.lang.annotation.Target; | ||||
| @Retention(RetentionPolicy.RUNTIME) | ||||
| public @interface Excels | ||||
| { | ||||
|     Excel[] value(); | ||||
|     public Excel[] value(); | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,40 @@ | ||||
| package com.ruoyi.common.annotation; | ||||
|  | ||||
| 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 com.ruoyi.common.constant.Constants; | ||||
| import com.ruoyi.common.enums.LimitType; | ||||
|  | ||||
| /** | ||||
|  * 限流注解 | ||||
|  *  | ||||
|  * @author ruoyi | ||||
|  */ | ||||
| @Target(ElementType.METHOD) | ||||
| @Retention(RetentionPolicy.RUNTIME) | ||||
| @Documented | ||||
| public @interface RateLimiter | ||||
| { | ||||
|     /** | ||||
|      * 限流key | ||||
|      */ | ||||
|     public String key() default Constants.RATE_LIMIT_KEY; | ||||
|  | ||||
|     /** | ||||
|      * 限流时间,单位秒 | ||||
|      */ | ||||
|     public int time() default 60; | ||||
|  | ||||
|     /** | ||||
|      * 限流次数 | ||||
|      */ | ||||
|     public int count() default 100; | ||||
|  | ||||
|     /** | ||||
|      * 限流类型 | ||||
|      */ | ||||
|     public LimitType limitType() default LimitType.DEFAULT; | ||||
| } | ||||
| @@ -74,6 +74,11 @@ public class Constants | ||||
|      */ | ||||
|     public static final String REPEAT_SUBMIT_KEY = "repeat_submit:"; | ||||
|  | ||||
|     /** | ||||
|      * 限流 redis key | ||||
|      */ | ||||
|     public static final String RATE_LIMIT_KEY = "rate_limit:"; | ||||
|  | ||||
|     /** | ||||
|      * 验证码有效期(分钟) | ||||
|      */ | ||||
|   | ||||
| @@ -0,0 +1,20 @@ | ||||
| package com.ruoyi.common.enums; | ||||
|  | ||||
| /** | ||||
|  * 限流类型 | ||||
|  * | ||||
|  * @author ruoyi | ||||
|  */ | ||||
|  | ||||
| public enum LimitType | ||||
| { | ||||
|     /** | ||||
|      * 默认策略全局限流 | ||||
|      */ | ||||
|     DEFAULT, | ||||
|  | ||||
|     /** | ||||
|      * 根据请求者IP进行限流 | ||||
|      */ | ||||
|     IP | ||||
| } | ||||
		Reference in New Issue
	
	Block a user