Class SubscriptionMethodReturnValueHandler
java.lang.Object
org.springframework.messaging.simp.annotation.support.SubscriptionMethodReturnValueHandler
- All Implemented Interfaces:
HandlerMethodReturnValueHandler
public class SubscriptionMethodReturnValueHandler
extends Object
implements HandlerMethodReturnValueHandler
HandlerMethodReturnValueHandler for replying directly to a
subscription. It is supported on methods annotated with
SubscribeMapping such that the return value is treated as a response to be
sent directly back on the session. This allows a client to implement
a request-response pattern and use it for example to obtain some data upon
initialization.
The value returned from the method is converted and turned into a
Message that is then enriched with the sessionId, subscriptionId, and
destination of the input message.
Note: this default behavior for interpreting the return
value from an @SubscribeMapping method can be overridden through use
of the SendTo or SendToUser annotations in which case a
message is prepared and sent to the broker instead.
- Since:
- 4.0
- Author:
- Rossen Stoyanchev, Sebastien Deleuze
-
Constructor Summary
ConstructorsConstructorDescriptionConstruct a new SubscriptionMethodReturnValueHandler. -
Method Summary
Modifier and TypeMethodDescriptionReturn the configured header initializer.voidhandleReturnValue(Object returnValue, MethodParameter returnType, Message<?> message) Handle the given return value.voidsetHeaderInitializer(MessageHeaderInitializer headerInitializer) Configure aMessageHeaderInitializerto apply to the headers of all messages sent to the client outbound channel.booleansupportsReturnType(MethodParameter returnType) Whether the given method return type is supported by this handler.
-
Constructor Details
-
SubscriptionMethodReturnValueHandler
Construct a new SubscriptionMethodReturnValueHandler.- Parameters:
template- a messaging template to send messages to, most likely the "clientOutboundChannel" (must not benull)
-
-
Method Details
-
setHeaderInitializer
Configure aMessageHeaderInitializerto apply to the headers of all messages sent to the client outbound channel.By default this property is not set.
-
getHeaderInitializer
Return the configured header initializer. -
supportsReturnType
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 void handleReturnValue(@Nullable Object returnValue, MethodParameter returnType, Message<?> message) throws Exception 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(org.springframework.core.MethodParameter)and it must have returnedtrue.message- the message that caused this method to be called- Throws:
Exception- if the return value handling results in an error
-