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 registeredHandlerMethodArgumentResolvers
. Previously resolved method parameters are cached for faster lookups.- Since:
- 3.1
- Author:
- Rossen Stoyanchev, Juergen Hoeller
Constructor Summary
Constructors Constructor Description HandlerMethodArgumentResolverComposite()
Method Summary
Field Detail
logger
@Deprecated protected final Log logger
Deprecated.
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.- Since:
- 4.3
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, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) 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
.mavContainer
- the ModelAndViewContainer for the current requestwebRequest
- the current requestbinderFactory
- a factory for creatingWebDataBinder
instances- 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