Class HandlerMethodArgumentResolverComposite
java.lang.Object
org.springframework.web.method.support.HandlerMethodArgumentResolverComposite
- All Implemented Interfaces:
- HandlerMethodArgumentResolver
public class HandlerMethodArgumentResolverComposite
extends Object
implements HandlerMethodArgumentResolver
Resolves method parameters by delegating to a list of registered
HandlerMethodArgumentResolvers.
Previously resolved method parameters are cached for faster lookups.- Since:
- 3.1
- Author:
- Rossen Stoyanchev, Juergen Hoeller
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionaddResolver(HandlerMethodArgumentResolver resolver) Add the givenHandlerMethodArgumentResolver.addResolvers(@Nullable List<? extends HandlerMethodArgumentResolver> resolvers) Add the givenHandlerMethodArgumentResolvers.addResolvers(@Nullable HandlerMethodArgumentResolver... resolvers) Add the givenHandlerMethodArgumentResolvers.voidclear()Clear the list of configured resolvers and the resolver cache.getArgumentResolver(MethodParameter parameter) Find a registeredHandlerMethodArgumentResolverthat supports the given method parameter.Return a read-only list with the contained resolvers, or an empty list.resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) Iterate over registeredHandlerMethodArgumentResolversand invoke the one that supports it.booleansupportsParameter(MethodParameter parameter) Whether the given method parameter is supported by any registeredHandlerMethodArgumentResolver.
- 
Constructor Details- 
HandlerMethodArgumentResolverCompositepublic HandlerMethodArgumentResolverComposite()
 
- 
- 
Method Details- 
addResolverAdd the givenHandlerMethodArgumentResolver.
- 
addResolverspublic HandlerMethodArgumentResolverComposite addResolvers(@Nullable HandlerMethodArgumentResolver... resolvers) Add the givenHandlerMethodArgumentResolvers.- Since:
- 4.3
 
- 
addResolverspublic HandlerMethodArgumentResolverComposite addResolvers(@Nullable List<? extends HandlerMethodArgumentResolver> resolvers) Add the givenHandlerMethodArgumentResolvers.
- 
getResolversReturn a read-only list with the contained resolvers, or an empty list.
- 
clearpublic void clear()Clear the list of configured resolvers and the resolver cache.- Since:
- 4.3
 
- 
supportsParameterWhether the given method parameter is supported by any registeredHandlerMethodArgumentResolver.- Specified by:
- supportsParameterin interface- HandlerMethodArgumentResolver
- Parameters:
- parameter- the method parameter to check
- Returns:
- trueif this resolver supports the supplied parameter;- falseotherwise
 
- 
resolveArgumentpublic @Nullable Object resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) throws Exception Iterate over registeredHandlerMethodArgumentResolversand invoke the one that supports it.- Specified by:
- resolveArgumentin interface- HandlerMethodArgumentResolver
- Parameters:
- parameter- the method parameter to resolve. This parameter must have previously been passed to- HandlerMethodArgumentResolver.supportsParameter(MethodParameter)which must have returned- true.
- mavContainer- the ModelAndViewContainer for the current request
- webRequest- the current request
- binderFactory- a factory for creating- WebDataBinderinstances
- Returns:
- the resolved argument value, or nullif not resolvable
- Throws:
- IllegalArgumentException- if no suitable argument resolver is found
- Exception- in case of errors with the preparation of argument values
 
- 
getArgumentResolverFind a registeredHandlerMethodArgumentResolverthat supports the given method parameter.
 
-