类 PayloadArgumentResolver
- java.lang.Object
- org.springframework.messaging.handler.annotation.support.PayloadArgumentResolver
- 所有已实现的接口:
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.- 从以下版本开始:
- 4.0
- 作者:
- Rossen Stoyanchev, Brian Clozel, Stephane Nicoll
构造器概要
构造器 构造器 说明 PayloadArgumentResolver(MessageConverter messageConverter)Create a newPayloadArgumentResolverwith the givenMessageConverter.PayloadArgumentResolver(MessageConverter messageConverter, Validator validator)PayloadArgumentResolver(MessageConverter messageConverter, Validator validator, boolean useDefaultResolution)
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 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.
构造器详细资料
PayloadArgumentResolver
public PayloadArgumentResolver(MessageConverter messageConverter)
Create a newPayloadArgumentResolverwith the givenMessageConverter.- 参数:
messageConverter- the MessageConverter to use (required)- 从以下版本开始:
- 4.0.9
PayloadArgumentResolver
public PayloadArgumentResolver(MessageConverter messageConverter, Validator validator)
- 参数:
messageConverter- the MessageConverter to use (required)validator- the Validator to use (optional)
PayloadArgumentResolver
public PayloadArgumentResolver(MessageConverter messageConverter, Validator validator, boolean useDefaultResolution)
- 参数:
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.
方法详细资料
supportsParameter
public boolean supportsParameter(MethodParameter parameter)
从接口复制的说明:HandlerMethodArgumentResolverWhether the given method parameter is supported by this resolver.- 指定者:
supportsParameter在接口中HandlerMethodArgumentResolver- 参数:
parameter- the method parameter to check- 返回:
trueif this resolver supports the supplied parameter;falseotherwise
resolveArgument
public Object resolveArgument(MethodParameter parameter, Message<?> message) throws Exception
从接口复制的说明:HandlerMethodArgumentResolverResolves a method parameter into an argument value from a given message.- 指定者:
resolveArgument在接口中HandlerMethodArgumentResolver- 参数:
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- 返回:
- the resolved argument value, or
null - 抛出:
Exception- in case of errors with the preparation of argument values
isEmptyPayload
protected boolean isEmptyPayload(Object payload)
Specify if the givenpayloadis empty.- 参数:
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".- 参数:
message- the currently processed messageparameter- the method parametertarget- the target payload object- 抛出:
MethodArgumentNotValidException- in case of binding errors