public class SendToMethodReturnValueHandler extends Object implements HandlerMethodReturnValueHandler
HandlerMethodReturnValueHandler for sending to destinations specified in a
SendTo or SendToUser method-level annotations.
The value returned from the method is converted, and turned to a Message and
sent through the provided MessageChannel. The
message is then enriched with the sessionId of the input message as well as the
destination from the annotation(s). If multiple destinations are specified, a copy of
the message is sent to each destination.
| Constructor and Description |
|---|
SendToMethodReturnValueHandler(SimpMessageSendingOperations messagingTemplate,
boolean annotationRequired) |
| Modifier and Type | Method and Description |
|---|---|
String |
getDefaultDestinationPrefix()
Return the configured default destination prefix.
|
String |
getDefaultUserDestinationPrefix()
Return the configured default user destination prefix.
|
protected String[] |
getTargetDestinations(Annotation annot,
SimpMessageHeaderAccessor inputHeaders,
String defaultPrefix) |
void |
handleReturnValue(Object returnValue,
MethodParameter returnType,
Message<?> inputMessage)
Handle the given return value.
|
void |
setDefaultDestinationPrefix(String defaultDestinationPrefix)
Configure a default prefix to add to message destinations in cases where a method
is not annotated with
@SendTo or does not specify any destinations
through the annotation's value attribute. |
void |
setDefaultUserDestinationPrefix(String prefix)
Configure a default prefix to add to message destinations in cases where a
method is annotated with
@SendToUser but does not specify
any destinations through the annotation's value attribute. |
boolean |
supportsReturnType(MethodParameter returnType)
Whether the given method return type is
supported by this handler.
|
String |
toString() |
public SendToMethodReturnValueHandler(SimpMessageSendingOperations messagingTemplate, boolean annotationRequired)
public void setDefaultDestinationPrefix(String defaultDestinationPrefix)
@SendTo or does not specify any destinations
through the annotation's value attribute.
By default, the prefix is set to "/topic".
public String getDefaultDestinationPrefix()
setDefaultDestinationPrefix(String)public void setDefaultUserDestinationPrefix(String prefix)
@SendToUser but does not specify
any destinations through the annotation's value attribute.
By default, the prefix is set to "/queue".
public String getDefaultUserDestinationPrefix()
setDefaultUserDestinationPrefix(String)public boolean supportsReturnType(MethodParameter returnType)
HandlerMethodReturnValueHandlersupportsReturnType in interface HandlerMethodReturnValueHandlerreturnType - the method return type to checktrue if this handler supports the supplied return type;
false otherwisepublic void handleReturnValue(Object returnValue, MethodParameter returnType, Message<?> inputMessage) throws Exception
HandlerMethodReturnValueHandlerhandleReturnValue in interface HandlerMethodReturnValueHandlerreturnValue - the value returned from the handler methodreturnType - the type of the return value. This type must have
previously been passed to
HandlerMethodReturnValueHandler.supportsReturnType(org.springframework.core.MethodParameter)
and it must have returned trueinputMessage - the message that caused this method to be calledException - if the return value handling results in an errorprotected String[] getTargetDestinations(Annotation annot, SimpMessageHeaderAccessor inputHeaders, String defaultPrefix)