public class RateLimiterAspect
extends java.lang.Object
implements org.springframework.context.EmbeddedValueResolverAware, org.springframework.core.Ordered
RateLimiter
annotation. The aspect will handle methods that return a RxJava2 reactive type, Spring Reactor
reactive type, CompletionStage type, or value type.
The RateLimiterRegistry is used to retrieve an instance of a RateLimiter for a specific backend.
Given a method like this:
@RateLimiter(name = "myService")
public String fancyName(String name) {
return "Sir Captain " + name;
}
each time the #fancyName(String) method is invoked, the method's execution will pass
through a a RateLimiter according to the given
config.
The fallbackMethod parameter signature must match either:
1) The method parameter signature on the annotated method or 2) The method parameter signature with a matching exception type as the last parameter on the annotated method
| Constructor and Description |
|---|
RateLimiterAspect(io.github.resilience4j.ratelimiter.RateLimiterRegistry rateLimiterRegistry,
RateLimiterConfigurationProperties properties,
java.util.List<RateLimiterAspectExt> rateLimiterAspectExtList,
FallbackDecorators fallbackDecorators) |
| Modifier and Type | Method and Description |
|---|---|
int |
getOrder() |
void |
matchAnnotatedClassOrMethod(io.github.resilience4j.ratelimiter.annotation.RateLimiter rateLimiter)
Method used as pointcut
|
java.lang.Object |
rateLimiterAroundAdvice(org.aspectj.lang.ProceedingJoinPoint proceedingJoinPoint,
io.github.resilience4j.ratelimiter.annotation.RateLimiter rateLimiterAnnotation) |
void |
setEmbeddedValueResolver(org.springframework.util.StringValueResolver resolver) |
public RateLimiterAspect(io.github.resilience4j.ratelimiter.RateLimiterRegistry rateLimiterRegistry,
RateLimiterConfigurationProperties properties,
@Autowired(required=false)
java.util.List<RateLimiterAspectExt> rateLimiterAspectExtList,
FallbackDecorators fallbackDecorators)
public void matchAnnotatedClassOrMethod(io.github.resilience4j.ratelimiter.annotation.RateLimiter rateLimiter)
rateLimiter - - matched annotationpublic java.lang.Object rateLimiterAroundAdvice(org.aspectj.lang.ProceedingJoinPoint proceedingJoinPoint,
@Nullable
io.github.resilience4j.ratelimiter.annotation.RateLimiter rateLimiterAnnotation)
throws java.lang.Throwable
java.lang.Throwablepublic int getOrder()
getOrder in interface org.springframework.core.Orderedpublic void setEmbeddedValueResolver(org.springframework.util.StringValueResolver resolver)
setEmbeddedValueResolver in interface org.springframework.context.EmbeddedValueResolverAware