文章目录
- 1、添加pom项目依赖
- 2、注解类RateLimit
- 3、限流切面RateLimitAspect
- 4、controller层使用注解
- 小结
1、添加pom项目依赖
<dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.7</version></dependency>
2、注解类RateLimit
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RateLimit {int limit() default 0;long timeUnit() default 0;boolean byIp() default false;boolean byRequestParam() default false;String paramName() default "";
}
3、限流切面RateLimitAspect
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation