Class HandlerMethodArgumentResolverComposite
- java.lang.Object
- org.springframework.messaging.handler.invocation.reactive.HandlerMethodArgumentResolverComposite
- All Implemented Interfaces:
HandlerMethodArgumentResolver
public class HandlerMethodArgumentResolverComposite extends Object implements HandlerMethodArgumentResolver
Resolves method parameters by delegating to a list of registeredHandlerMethodArgumentResolvers
. Previously resolved method parameters are cached for faster lookups.- Since:
- 5.2
- Author:
- Rossen Stoyanchev
Constructor Summary
Constructors Constructor Description HandlerMethodArgumentResolverComposite()
Method Summary
Constructor Detail
HandlerMethodArgumentResolverComposite
public HandlerMethodArgumentResolverComposite()
Method Detail
addResolver
public HandlerMethodArgumentResolverComposite addResolver(HandlerMethodArgumentResolver resolver)
Add the givenHandlerMethodArgumentResolver
.
addResolvers
public HandlerMethodArgumentResolverComposite addResolvers(@Nullable HandlerMethodArgumentResolver... resolvers)
Add the givenHandlerMethodArgumentResolvers
.
addResolvers
public HandlerMethodArgumentResolverComposite addResolvers(@Nullable List<? extends HandlerMethodArgumentResolver> resolvers)
Add the givenHandlerMethodArgumentResolvers
.
getResolvers
public List<HandlerMethodArgumentResolver> getResolvers()
Return a read-only list with the contained resolvers, or an empty list.
clear
public void clear()
Clear the list of configured resolvers.
supportsParameter
public boolean supportsParameter(MethodParameter parameter)
Whether the given method parameter is supported by any registeredHandlerMethodArgumentResolver
.- Specified by:
supportsParameter
in interfaceHandlerMethodArgumentResolver
- Parameters:
parameter
- the method parameter to check- Returns:
true
if this resolver supports the supplied parameter;false
otherwise
resolveArgument
public reactor.core.publisher.Mono<Object> resolveArgument(MethodParameter parameter, Message<?> message)
Iterate over registeredHandlerMethodArgumentResolvers
and invoke the one that supports it.- Specified by:
resolveArgument
in interfaceHandlerMethodArgumentResolver
- Parameters:
parameter
- the method parameter to resolve. This parameter must have previously been passed toHandlerMethodArgumentResolver.supportsParameter(org.springframework.core.MethodParameter)
which must have returnedtrue
.message
- the currently processed message- Returns:
Mono
for the argument value, possibly empty- Throws:
IllegalStateException
- if no suitableHandlerMethodArgumentResolver
is found.
getArgumentResolver
@Nullable public HandlerMethodArgumentResolver getArgumentResolver(MethodParameter parameter)
Find a registeredHandlerMethodArgumentResolver
that supports the given method parameter.