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
session id 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.
|
MessageHeaderInitializer |
getHeaderInitializer() |
protected String[] |
getTargetDestinations(Annotation annotation,
Message<?> message,
String defaultPrefix) |
protected String |
getUserName(Message<?> message,
MessageHeaders headers) |
void |
handleReturnValue(Object returnValue,
MethodParameter returnType,
Message<?> message)
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. |
void |
setHeaderInitializer(MessageHeaderInitializer headerInitializer)
Configure a
MessageHeaderInitializer to apply to the headers of all
messages sent to the client outbound channel. |
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 void setHeaderInitializer(MessageHeaderInitializer headerInitializer)
MessageHeaderInitializer
to apply to the headers of all
messages sent to the client outbound channel.
By default this property is not set.
public MessageHeaderInitializer getHeaderInitializer()
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<?> message) 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
message
- the message that caused this method to be calledException
- if the return value handling results in an errorprotected String getUserName(Message<?> message, MessageHeaders headers)
protected String[] getTargetDestinations(Annotation annotation, Message<?> message, String defaultPrefix)