Annotation Type RateLimiter


@Retention(RUNTIME)
@Target({METHOD,TYPE})
@Documented
public @interface RateLimiter
This annotation can be applied to a class or a specific method. Applying it on a class is equivalent to applying it on all its public methods. The annotation enables throttling for all methods where it is applied. Throttling monitoring is performed via a rate limiter. See RateLimiter for details. If using Spring, name and fallbackMethod can be resolved using Spring Expression Language (SpEL).
  • Required Element Summary

    Required Elements 
    Modifier and Type Required Element Description
    java.lang.String name
    Name of the rate limiter It can be SpEL expression.
  • Optional Element Summary

    Optional Elements 
    Modifier and Type Optional Element Description
    java.lang.String fallbackMethod
    fallbackMethod method name.
  • Element Details

    • name

      java.lang.String name
      Name of the rate limiter It can be SpEL expression. If you want to use the first parameter of the method as name, you can express it as #root.args[0], #p0 or #a0. The method name can be accessed via #root.methodName. To invoke a method on a Spring bean, pass @yourBean.yourMethod(#a0).
      Returns:
      the name of the limiter
    • fallbackMethod

      java.lang.String fallbackMethod
      fallbackMethod method name.
      Returns:
      fallbackMethod method name.
      Default:
      ""