Top Description Fields Constructors Methods
org.springframework.web.method.support

public Class HandlerMethodArgumentResolverComposite

extends Object
implements HandlerMethodArgumentResolver
Class Inheritance
All Implemented Interfaces
org.springframework.web.method.support.HandlerMethodArgumentResolver
Imports
java.util.ArrayList, .Collections, .List, .Map, java.util.concurrent.ConcurrentHashMap, org.springframework.core.MethodParameter, org.springframework.lang.Nullable, org.springframework.web.bind.support.WebDataBinderFactory, org.springframework.web.context.request.NativeWebRequest

Resolves method parameters by delegating to a list of registered HandlerMethodArgumentResolvers. Previously resolved method parameters are cached for faster lookups.
Authors
Rossen Stoyanchev, Juergen Hoeller
Since
3.1

Field Summary

Modifier and TypeField and Description
private final Map<MethodParameter, HandlerMethodArgumentResolver>
private final List<HandlerMethodArgumentResolver>

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public HandlerMethodArgumentResolverComposite
public HandlerMethodArgumentResolverComposite
public HandlerMethodArgumentResolverComposite
public void
clear()

Clear the list of configured resolvers and the resolver cache.

public HandlerMethodArgumentResolver
getArgumentResolver(MethodParameter parameter)

Find a registered HandlerMethodArgumentResolver that supports the given method parameter.

public List<HandlerMethodArgumentResolver>
getResolvers()

Return a read-only list with the contained resolvers, or an empty list.

public Object
resolveArgument(MethodParameter
the method parameter to resolve. This parameter must have previously been passed to supportsParameter which must have returned true.
parameter
,
ModelAndViewContainer
the ModelAndViewContainer for the current request
mavContainer
,
NativeWebRequest
the current request
webRequest
,
WebDataBinderFactory
a factory for creating WebDataBinder instances
binderFactory
)

Implements org.springframework.web.method.support.HandlerMethodArgumentResolver.resolveArgument.

Iterate over registered HandlerMethodArgumentResolvers and invoke the one that supports it.
public boolean
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

argumentResolverCacheback to summary
private final Map<MethodParameter, HandlerMethodArgumentResolver> argumentResolverCache
argumentResolversback to summary
private final List<HandlerMethodArgumentResolver> argumentResolvers

Constructor Detail

HandlerMethodArgumentResolverCompositeback to summary
public HandlerMethodArgumentResolverComposite()

Method Detail

addResolverback to summary
public HandlerMethodArgumentResolverComposite addResolver(HandlerMethodArgumentResolver resolver)

Add the given HandlerMethodArgumentResolver.

addResolversback to summary
public HandlerMethodArgumentResolverComposite addResolvers(HandlerMethodArgumentResolver... resolvers)

Add the given HandlerMethodArgumentResolvers.

Since
4.3
addResolversback to summary
public HandlerMethodArgumentResolverComposite addResolvers(List<? extends HandlerMethodArgumentResolver> resolvers)

Add the given HandlerMethodArgumentResolvers.

clearback to summary
public void clear()

Clear the list of configured resolvers and the resolver cache.

Since
4.3
getArgumentResolverback to summary
public HandlerMethodArgumentResolver getArgumentResolver(MethodParameter parameter)

Find a registered HandlerMethodArgumentResolver that supports the given method parameter.

Annotations
@Nullable
getResolversback to summary
public List<HandlerMethodArgumentResolver> getResolvers()

Return a read-only list with the contained resolvers, or an empty list.

resolveArgumentback to summary
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception

Implements org.springframework.web.method.support.HandlerMethodArgumentResolver.resolveArgument.

Iterate over registered HandlerMethodArgumentResolvers and invoke the one that supports it.

Parameters
parameter:MethodParameter

Doc from org.springframework.web.method.support.HandlerMethodArgumentResolver.resolveArgument.

the method parameter to resolve. This parameter must have previously been passed to supportsParameter which must have returned true.

mavContainer:ModelAndViewContainer

Doc from org.springframework.web.method.support.HandlerMethodArgumentResolver.resolveArgument.

the ModelAndViewContainer for the current request

webRequest:NativeWebRequest

Doc from org.springframework.web.method.support.HandlerMethodArgumentResolver.resolveArgument.

the current request

binderFactory:WebDataBinderFactory

Doc from org.springframework.web.method.support.HandlerMethodArgumentResolver.resolveArgument.

a factory for creating WebDataBinder instances

Returns:Object

Doc from org.springframework.web.method.support.HandlerMethodArgumentResolver.resolveArgument.

the resolved argument value, or null if not resolvable

Annotations
@Override
@Nullable
Exceptions
Exception:

Doc from org.springframework.web.method.support.HandlerMethodArgumentResolver.resolveArgument.

in case of errors with the preparation of argument values

IllegalArgumentException:
if no suitable argument resolver is found
supportsParameterback to summary
public boolean supportsParameter(MethodParameter parameter)

Implements org.springframework.web.method.support.HandlerMethodArgumentResolver.supportsParameter.

Whether the given method parameter is supported by any registered HandlerMethodArgumentResolver.

Parameters
parameter:MethodParameter

Doc from org.springframework.web.method.support.HandlerMethodArgumentResolver.supportsParameter.

the method parameter to check

Returns:boolean

Doc from org.springframework.web.method.support.HandlerMethodArgumentResolver.supportsParameter.

true if this resolver supports the supplied parameter; false otherwise

Annotations
@Override