Top Description Fields Constructors Methods
org.springframework.messaging.handler.invocation

public Class HandlerMethodArgumentResolverComposite

extends Object
implements HandlerMethodArgumentResolver
Class Inheritance
All Implemented Interfaces
org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver
Imports
java.util.ArrayList, .Collections, .List, .Map, java.util.concurrent.ConcurrentHashMap, org.springframework.core.MethodParameter, org.springframework.lang.Nullable, org.springframework.messaging.Message

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
4.0

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.

private 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(org.springframework.core.MethodParameter) which must have returned true.
parameter
,
Message<?>
the currently processed message
message
)

Implements org.springframework.messaging.handler.invocation.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.

getArgumentResolverback to summary
private 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, Message<?> message) throws Exception

Implements org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver.resolveArgument.

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

Parameters
parameter:MethodParameter

Doc from org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver.resolveArgument.

the method parameter to resolve. This parameter must have previously been passed to supportsParameter(org.springframework.core.MethodParameter) which must have returned true.

message:Message<?>

Doc from org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver.resolveArgument.

the currently processed message

Returns:Object

Doc from org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver.resolveArgument.

the resolved argument value, or null

Annotations
@Override
@Nullable
Exceptions
Exception:

Doc from org.springframework.messaging.handler.invocation.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.messaging.handler.invocation.HandlerMethodArgumentResolver.supportsParameter.

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

Parameters
parameter:MethodParameter

Doc from org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver.supportsParameter.

the method parameter to check

Returns:boolean

Doc from org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver.supportsParameter.

true if this resolver supports the supplied parameter; false otherwise

Annotations
@Override