Class SendToMethodReturnValueHandler

java.lang.Object
org.springframework.messaging.simp.annotation.support.SendToMethodReturnValueHandler
All Implemented Interfaces:
HandlerMethodReturnValueHandler

public class SendToMethodReturnValueHandler extends Object implements HandlerMethodReturnValueHandler
A 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.

Since:
4.0
Author:
Rossen Stoyanchev, Sebastien Deleuze
  • Constructor Details

    • SendToMethodReturnValueHandler

      public SendToMethodReturnValueHandler(SimpMessageSendingOperations messagingTemplate, boolean annotationRequired)
  • Method Details

    • setDefaultDestinationPrefix

      public 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.

      By default, the prefix is set to "/topic".

    • getDefaultDestinationPrefix

      public String getDefaultDestinationPrefix()
      Return the configured default destination prefix.
      See Also:
    • setDefaultUserDestinationPrefix

      public 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.

      By default, the prefix is set to "/queue".

    • getDefaultUserDestinationPrefix

      public String getDefaultUserDestinationPrefix()
      Return the configured default user destination prefix.
      See Also:
    • setHeaderInitializer

      public void setHeaderInitializer(@Nullable MessageHeaderInitializer headerInitializer)
      Configure a MessageHeaderInitializer to apply to the headers of all messages sent to the client outbound channel.

      By default this property is not set.

    • getHeaderInitializer

      @Nullable public MessageHeaderInitializer getHeaderInitializer()
      Return the configured header initializer.
    • supportsReturnType

      public boolean supportsReturnType(org.springframework.core.MethodParameter returnType)
      Description copied from interface: HandlerMethodReturnValueHandler
      Whether the given method return type is supported by this handler.
      Specified by:
      supportsReturnType in interface HandlerMethodReturnValueHandler
      Parameters:
      returnType - the method return type to check
      Returns:
      true if this handler supports the supplied return type; false otherwise
    • handleReturnValue

      public void handleReturnValue(@Nullable Object returnValue, org.springframework.core.MethodParameter returnType, Message<?> message) throws Exception
      Description copied from interface: HandlerMethodReturnValueHandler
      Handle the given return value.
      Specified by:
      handleReturnValue in interface HandlerMethodReturnValueHandler
      Parameters:
      returnValue - the value returned from the handler method
      returnType - 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 called
      Throws:
      Exception - if the return value handling results in an error
    • getUserName

      @Nullable protected String getUserName(Message<?> message, MessageHeaders headers)
    • getTargetDestinations

      protected String[] getTargetDestinations(@Nullable Annotation annotation, Message<?> message, String defaultPrefix)
    • toString

      public String toString()
      Overrides:
      toString in class Object