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()
Return the configured header initializer.
|
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(@Nullable MessageHeaderInitializer headerInitializer)
MessageHeaderInitializer
to apply to the headers of all
messages sent to the client outbound channel.
By default this property is not set.
@Nullable 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(@Nullable 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 error@Nullable protected String getUserName(Message<?> message, MessageHeaders headers)
protected String[] getTargetDestinations(@Nullable Annotation annotation, Message<?> message, String defaultPrefix)