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 HandlerMethodArgumentResolverCompositeaddResolver(HandlerMethodArgumentResolver resolver)Add the givenHandlerMethodArgumentResolver.HandlerMethodArgumentResolverCompositeaddResolvers(List<? extends HandlerMethodArgumentResolver> resolvers)Add the givenHandlerMethodArgumentResolvers.HandlerMethodArgumentResolverCompositeaddResolvers(HandlerMethodArgumentResolver... resolvers)Add the givenHandlerMethodArgumentResolvers.voidclear()Clear the list of configured resolvers.List<HandlerMethodArgumentResolver>getResolvers()Return a read-only list with the contained resolvers, or an empty list.ObjectresolveArgument(MethodParameter parameter, Message<?> message)Iterate over registeredHandlerMethodArgumentResolversand invoke the one that supports it.booleansupportsParameter(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:
supportsParameterin interfaceHandlerMethodArgumentResolver- Parameters:
parameter- the method parameter to check- Returns:
trueif this resolver supports the supplied parameter;falseotherwise
resolveArgument
public Object resolveArgument(MethodParameter parameter, Message<?> message) throws Exception
Iterate over registeredHandlerMethodArgumentResolversand invoke the one that supports it.- Specified by:
resolveArgumentin 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