Class PayloadMethodArgumentResolver
java.lang.Object
org.springframework.messaging.handler.annotation.reactive.PayloadMethodArgumentResolver
- All Implemented Interfaces:
HandlerMethodArgumentResolver
A resolver to extract and decode the payload of a message using a
Decoder, where the payload is expected to be a Publisher
of DataBuffer.
Validation is applied if the method argument is annotated with
Validated or
@jakarta.validation.Valid. Validation failure results in an
MethodArgumentNotValidException.
This resolver should be ordered last if useDefaultResolution is
set to true since in that case it supports all types and does not
require the presence of Payload.
- Since:
- 5.2
- Author:
- Rossen Stoyanchev
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionPayloadMethodArgumentResolver(List<? extends Decoder<?>> decoders, Validator validator, ReactiveAdapterRegistry registry, boolean useDefaultResolution) -
Method Summary
Modifier and TypeMethodDescriptionReturn the configuredReactiveAdapterRegistry.Return a read-only list of the configured decoders.protected MimeTypegetMimeType(Message<?> message) Return the mime type for the content.Return the configured validator, if any.booleanWhether this resolver is configured to use default resolution, i.e.final reactor.core.publisher.Mono<Object>resolveArgument(MethodParameter parameter, Message<?> message) Decode the content of the given message payload through a compatibleDecoder.booleansupportsParameter(MethodParameter parameter) Whether the given method parameter is supported by this resolver.
-
Field Details
-
logger
-
-
Constructor Details
-
PayloadMethodArgumentResolver
-
-
Method Details
-
getDecoders
Return a read-only list of the configured decoders. -
getValidator
Return the configured validator, if any. -
getAdapterRegistry
Return the configuredReactiveAdapterRegistry. -
isUseDefaultResolution
public boolean isUseDefaultResolution()Whether this resolver is configured to use default resolution, i.e. works for any argument type regardless of whether@Payloadis present or not. -
supportsParameter
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 final reactor.core.publisher.Mono<Object> resolveArgument(MethodParameter parameter, Message<?> message) Decode the content of the given message payload through a compatibleDecoder.Validation is applied if the method argument is annotated with
@jakarta.validation.ValidorValidated. Validation failure results in anMethodArgumentNotValidException.- Specified by:
resolveArgumentin interfaceHandlerMethodArgumentResolver- Parameters:
parameter- the target method argument that we are decoding tomessage- the message from which the content was extracted- Returns:
- a Mono with the result of argument resolution
- See Also:
-
extractContent(MethodParameter, Message)getMimeType(Message)
-
getMimeType
Return the mime type for the content. By default this method checks theMessageHeaders.CONTENT_TYPEheader expecting to find aMimeTypevalue or a String to parse to aMimeType.- Parameters:
message- the input message
-