RateLimiter.java 662 B

123456789101112131415161718192021222324252627282930313233343536
  1. package com.ruoyi.common.annotation;
  2. import com.ruoyi.common.constant.Constants;
  3. import com.ruoyi.common.enums.LimitType;
  4. import java.lang.annotation.*;
  5. /**
  6. * 限流注解
  7. *
  8. * @author Lion Li
  9. */
  10. @Target(ElementType.METHOD)
  11. @Retention(RetentionPolicy.RUNTIME)
  12. @Documented
  13. public @interface RateLimiter {
  14. /**
  15. * 限流key
  16. */
  17. String key() default Constants.RATE_LIMIT_KEY;
  18. /**
  19. * 限流时间,单位秒
  20. */
  21. int time() default 60;
  22. /**
  23. * 限流次数
  24. */
  25. int count() default 100;
  26. /**
  27. * 限流类型
  28. */
  29. LimitType limitType() default LimitType.DEFAULT;
  30. }