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)
HandlerMethodReturnValueHandler
supportsReturnType
in interface HandlerMethodReturnValueHandler
returnType
- 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
HandlerMethodReturnValueHandler
handleReturnValue
in interface HandlerMethodReturnValueHandler
returnValue
- 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 true
inputMessage
- 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)