42 lines
		
	
	
		
			794 B
		
	
	
	
		
			Java
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			794 B
		
	
	
	
		
			Java
		
	
	
	
	
	
|  | package com.ruoyi.common.annotation;
 | ||
|  | 
 | ||
|  | import com.ruoyi.common.enums.LimitType;
 | ||
|  | 
 | ||
|  | import java.lang.annotation.*;
 | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * 限流注解
 | ||
|  |  *
 | ||
|  |  * @author Lion Li
 | ||
|  |  */
 | ||
|  | @Target(ElementType.METHOD)
 | ||
|  | @Retention(RetentionPolicy.RUNTIME)
 | ||
|  | @Documented
 | ||
|  | public @interface RateLimiter {
 | ||
|  |     /**
 | ||
|  |      * 限流key,支持使用Spring el表达式来动态获取方法上的参数值
 | ||
|  |      * 格式类似于  #code.id #{#code}
 | ||
|  |      */
 | ||
|  |     String key() default "";
 | ||
|  | 
 | ||
|  |     /**
 | ||
|  |      * 限流时间,单位秒
 | ||
|  |      */
 | ||
|  |     int time() default 60;
 | ||
|  | 
 | ||
|  |     /**
 | ||
|  |      * 限流次数
 | ||
|  |      */
 | ||
|  |     int count() default 100;
 | ||
|  | 
 | ||
|  |     /**
 | ||
|  |      * 限流类型
 | ||
|  |      */
 | ||
|  |     LimitType limitType() default LimitType.DEFAULT;
 | ||
|  | 
 | ||
|  |     /**
 | ||
|  |      * 提示消息 支持国际化 格式为 {code}
 | ||
|  |      */
 | ||
|  |     String message() default "{rate.limiter.message}";
 | ||
|  | }
 |