RateLimiting.java 551 B

12345678910111213141516171819
  1. package com.backendsys.aspect;
  2. import java.lang.annotation.ElementType;
  3. import java.lang.annotation.Retention;
  4. import java.lang.annotation.RetentionPolicy;
  5. import java.lang.annotation.Target;
  6. @Target(ElementType.METHOD)
  7. @Retention(RetentionPolicy.RUNTIME)
  8. public @interface RateLimiting {
  9. // 缓存key
  10. String key() default "RateLimiting";
  11. // 限流时间 (秒) (默认1秒)
  12. int duration() default 1;
  13. // 限流次数 (默认1秒5次)
  14. int limit() default 5;
  15. // 锁定时长 (秒) (5秒)
  16. int lockDuration() default 5;
  17. }