Class HandlerMethodArgumentResolverComposite
- java.lang.Object
- org.springframework.messaging.handler.invocation.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:
- 4.0
- Author:
- Rossen Stoyanchev, Juergen Hoeller
Constructor Summary
Constructors Constructor Description HandlerMethodArgumentResolverComposite()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description HandlerMethodArgumentResolverComposite
addResolver(HandlerMethodArgumentResolver resolver)
Add the givenHandlerMethodArgumentResolver
.HandlerMethodArgumentResolverComposite
addResolvers(List<? extends HandlerMethodArgumentResolver> resolvers)
Add the givenHandlerMethodArgumentResolvers
.HandlerMethodArgumentResolverComposite
addResolvers(HandlerMethodArgumentResolver... resolvers)
Add the givenHandlerMethodArgumentResolvers
.void
clear()
Clear the list of configured resolvers.List<HandlerMethodArgumentResolver>
getResolvers()
Return a read-only list with the contained resolvers, or an empty list.Object
resolveArgument(MethodParameter parameter, Message<?> message)
Iterate over registeredHandlerMethodArgumentResolvers
and invoke the one that supports it.boolean
supportsParameter(MethodParameter parameter)
Whether the given method parameter is supported by any registeredHandlerMethodArgumentResolver
.
Constructor Detail
HandlerMethodArgumentResolverComposite
public HandlerMethodArgumentResolverComposite()
Method Detail
addResolver
public HandlerMethodArgumentResolverComposite addResolver(HandlerMethodArgumentResolver resolver)
Add the givenHandlerMethodArgumentResolver
.
addResolvers
public HandlerMethodArgumentResolverComposite addResolvers(HandlerMethodArgumentResolver... resolvers)
Add the givenHandlerMethodArgumentResolvers
.- Since:
- 4.3
addResolvers
public HandlerMethodArgumentResolverComposite addResolvers(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 Object resolveArgument(MethodParameter parameter, Message<?> message) throws Exception
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:
- the resolved argument value, or
null
- Throws:
IllegalArgumentException
- if no suitable argument resolver is foundException
- in case of errors with the preparation of argument values