Class PayloadArgumentResolver
- java.lang.Object
- org.springframework.messaging.handler.annotation.support.PayloadArgumentResolver
- All Implemented Interfaces:
HandlerMethodArgumentResolver
public class PayloadArgumentResolver extends Object implements HandlerMethodArgumentResolver
A resolver to extract and convert the payload of a message using aMessageConverter. It also validates the payload using aValidatorif the argument is annotated with a Validation annotation.This
HandlerMethodArgumentResolvershould be ordered last as it supports all types and does not require thePayloadannotation.- Since:
- 4.0
- Author:
- Rossen Stoyanchev, Brian Clozel, Stephane Nicoll
Constructor Summary
Constructors Constructor Description PayloadArgumentResolver(MessageConverter messageConverter)Create a newPayloadArgumentResolverwith the givenMessageConverter.PayloadArgumentResolver(MessageConverter messageConverter, Validator validator)PayloadArgumentResolver(MessageConverter messageConverter, Validator validator, boolean useDefaultResolution)
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleanisEmptyPayload(Object payload)Specify if the givenpayloadis empty.ObjectresolveArgument(MethodParameter parameter, Message<?> message)Resolves a method parameter into an argument value from a given message.booleansupportsParameter(MethodParameter parameter)Whether the given method parameter is supported by this resolver.protected voidvalidate(Message<?> message, MethodParameter parameter, Object target)Validate the payload if applicable.
Constructor Detail
PayloadArgumentResolver
public PayloadArgumentResolver(MessageConverter messageConverter)
Create a newPayloadArgumentResolverwith the givenMessageConverter.- Parameters:
messageConverter- the MessageConverter to use (required)- Since:
- 4.0.9
PayloadArgumentResolver
public PayloadArgumentResolver(MessageConverter messageConverter, Validator validator)
- Parameters:
messageConverter- the MessageConverter to use (required)validator- the Validator to use (optional)
PayloadArgumentResolver
public PayloadArgumentResolver(MessageConverter messageConverter, Validator validator, boolean useDefaultResolution)
- Parameters:
messageConverter- the MessageConverter to use (required)validator- the Validator to use (optional)useDefaultResolution- if "true" (the default) this resolver supports all parameters; if "false" then only arguments with the@Payloadannotation are supported.
Method Detail
supportsParameter
public boolean supportsParameter(MethodParameter parameter)
Description copied from interface:HandlerMethodArgumentResolverWhether the given method parameter is supported by this resolver.- 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
Description copied from interface:HandlerMethodArgumentResolverResolves a method parameter into an argument value from a given message.- 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:
Exception- in case of errors with the preparation of argument values
isEmptyPayload
protected boolean isEmptyPayload(Object payload)
Specify if the givenpayloadis empty.- Parameters:
payload- the payload to check (can benull)
validate
protected void validate(Message<?> message, MethodParameter parameter, Object target)
Validate the payload if applicable.The default implementation checks for
@javax.validation.Valid, Spring'sValidated, and custom annotations whose name starts with "Valid".- Parameters:
message- the currently processed messageparameter- the method parametertarget- the target payload object- Throws:
MethodArgumentNotValidException- in case of binding errors