RateLimiter.java 872 B

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