Class AbstractEncoderMethodReturnValueHandler
java.lang.Object
org.springframework.messaging.handler.invocation.reactive.AbstractEncoderMethodReturnValueHandler
- All Implemented Interfaces:
HandlerMethodReturnValueHandler
- Direct Known Subclasses:
RSocketPayloadReturnValueHandler
public abstract class AbstractEncoderMethodReturnValueHandler
extends Object
implements HandlerMethodReturnValueHandler
Base class for a return value handler that encodes return values to
Flux<DataBuffer> through the configured Encoders.
Subclasses must implement the abstract method
handleEncodedContent(Flux, MethodParameter, Message) to handle the resulting encoded content.
This handler should be ordered last since its supportsReturnType(MethodParameter)
returns true for any method parameter type.
- Since:
- 5.2
- Author:
- Rossen Stoyanchev
-
Field Summary
FieldsFields inherited from interface HandlerMethodReturnValueHandler
DATA_BUFFER_FACTORY_HEADER -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractEncoderMethodReturnValueHandler(List<org.springframework.core.codec.Encoder<?>> encoders, org.springframework.core.ReactiveAdapterRegistry registry) -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.core.ReactiveAdapterRegistryThe configured adapter registry.List<org.springframework.core.codec.Encoder<?>> The configured encoders.protected abstract reactor.core.publisher.Mono<Void> handleEncodedContent(reactor.core.publisher.Flux<org.springframework.core.io.buffer.DataBuffer> encodedContent, org.springframework.core.MethodParameter returnType, Message<?> message) Subclasses implement this method to handle encoded values in some way such as creating and sending messages.protected abstract reactor.core.publisher.Mono<Void> handleNoContent(org.springframework.core.MethodParameter returnType, Message<?> message) Invoked for anullreturn value, which could mean a void method or method returning an async type parameterized by void.reactor.core.publisher.Mono<Void> handleReturnValue(@Nullable Object returnValue, org.springframework.core.MethodParameter returnType, Message<?> message) Handle the given return value.booleansupportsReturnType(org.springframework.core.MethodParameter returnType) Whether the given method return type is supported by this handler.
-
Field Details
-
logger
protected final org.apache.commons.logging.Log logger
-
-
Constructor Details
-
AbstractEncoderMethodReturnValueHandler
protected AbstractEncoderMethodReturnValueHandler(List<org.springframework.core.codec.Encoder<?>> encoders, org.springframework.core.ReactiveAdapterRegistry registry)
-
-
Method Details
-
getEncoders
The configured encoders. -
getAdapterRegistry
public org.springframework.core.ReactiveAdapterRegistry getAdapterRegistry()The configured adapter registry. -
supportsReturnType
public boolean supportsReturnType(org.springframework.core.MethodParameter returnType) Description copied from interface:HandlerMethodReturnValueHandlerWhether the given method return type is supported by this handler.- Specified by:
supportsReturnTypein interfaceHandlerMethodReturnValueHandler- Parameters:
returnType- the method return type to check- Returns:
trueif this handler supports the supplied return type;falseotherwise
-
handleReturnValue
public reactor.core.publisher.Mono<Void> handleReturnValue(@Nullable Object returnValue, org.springframework.core.MethodParameter returnType, Message<?> message) Description copied from interface:HandlerMethodReturnValueHandlerHandle the given return value.- Specified by:
handleReturnValuein interfaceHandlerMethodReturnValueHandler- Parameters:
returnValue- the value returned from the handler methodreturnType- the type of the return value. This type must have previously been passed toHandlerMethodReturnValueHandler.supportsReturnType(MethodParameter)and it must have returnedtrue.- Returns:
Mono<Void>to indicate when handling is complete.
-
handleEncodedContent
protected abstract reactor.core.publisher.Mono<Void> handleEncodedContent(reactor.core.publisher.Flux<org.springframework.core.io.buffer.DataBuffer> encodedContent, org.springframework.core.MethodParameter returnType, Message<?> message) Subclasses implement this method to handle encoded values in some way such as creating and sending messages.- Parameters:
encodedContent- the encoded content; eachDataBufferrepresents the fully-aggregated, encoded content for one value (i.e. payload) returned from the HandlerMethod.returnType- return type of the handler method that produced the datamessage- the input message handled by the handler method- Returns:
- completion
Mono<Void>for the handling
-
handleNoContent
protected abstract reactor.core.publisher.Mono<Void> handleNoContent(org.springframework.core.MethodParameter returnType, Message<?> message) Invoked for anullreturn value, which could mean a void method or method returning an async type parameterized by void.- Parameters:
returnType- return type of the handler method that produced the datamessage- the input message handled by the handler method- Returns:
- completion
Mono<Void>for the handling
-