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 TypeMethodDescriptionvoidaddHeaderFilter(Predicate<String> filter) Add a filter to determine which headers from the input message should be propagated to the output message.Return the configured header filter.Return the configured header initializer.voidhandleReturnValue(@Nullable Object returnValue, org.springframework.core.MethodParameter returnType, Message<?> message) Handle the given return value.voidsetHeaderInitializer(@Nullable MessageHeaderInitializer headerInitializer) Configure aMessageHeaderInitializerto apply to the headers of all messages sent to the client outbound channel.booleansupportsReturnType(org.springframework.core.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. -
addHeaderFilter
Add a filter to determine which headers from the input message should be propagated to the output message. The filter is applied to the "native headers" submap. Multiple filters are combined withPredicate.or(Predicate).By default, no headers are propagated if this is not set.
- Since:
- 7.0.4
-
getHeaderFilter
-
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 void handleReturnValue(@Nullable Object returnValue, org.springframework.core.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
-