类 PayloadMethodArgumentResolver
- java.lang.Object
- org.springframework.messaging.handler.annotation.support.PayloadMethodArgumentResolver
- 所有已实现的接口:
HandlerMethodArgumentResolver
- 直接已知子类:
PayloadArgumentResolver
public class PayloadMethodArgumentResolver 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.- 从以下版本开始:
- 5.2
- 作者:
- Rossen Stoyanchev, Juergen Hoeller, Brian Clozel, Stephane Nicoll
构造器概要
构造器 构造器 说明 PayloadMethodArgumentResolver(MessageConverter messageConverter)Create a newPayloadArgumentResolverwith the givenMessageConverter.PayloadMethodArgumentResolver(MessageConverter messageConverter, Validator validator)PayloadMethodArgumentResolver(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.protected Class<?>resolveTargetClass(MethodParameter parameter, Message<?> message)Resolve the target class to convert the payload to.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.
构造器详细资料
PayloadMethodArgumentResolver
public PayloadMethodArgumentResolver(MessageConverter messageConverter)
Create a newPayloadArgumentResolverwith the givenMessageConverter.- 参数:
messageConverter- the MessageConverter to use (required)
PayloadMethodArgumentResolver
public PayloadMethodArgumentResolver(MessageConverter messageConverter, @Nullable Validator validator)
- 参数:
messageConverter- the MessageConverter to use (required)validator- the Validator to use (optional)
PayloadMethodArgumentResolver
public PayloadMethodArgumentResolver(MessageConverter messageConverter, @Nullable 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
@Nullable 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(@Nullable Object payload)
Specify if the givenpayloadis empty.- 参数:
payload- the payload to check (can benull)
resolveTargetClass
protected Class<?> resolveTargetClass(MethodParameter parameter, Message<?> message)
Resolve the target class to convert the payload to.By default this is simply
MethodParameter.getParameterType()but that can be overridden to select a more specific target type after also taking into account the "Content-Type", e.g. returnStringif target type isObjectand"Content-Type:text/**".- 参数:
parameter- the target method parametermessage- the message being processed- 返回:
- the target type to use
- 从以下版本开始:
- 5.2
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