org.springframework.messaging.simp.config

## Class MessageBrokerRegistry

- java.lang.Object
- - org.springframework.messaging.simp.config.MessageBrokerRegistry

-     public class MessageBrokerRegistry
      extends Object

  A registry for configuring message broker options.
  Since:
    4.0
  Author:
    Rossen Stoyanchev

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `MessageBrokerRegistry(SubscribableChannel clientInboundChannel, MessageChannel clientOutboundChannel)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ChannelRegistration` | `configureBrokerChannel()` Customize the channel used to send messages from the application to the message broker.
    `SimpleBrokerRegistration` | `enableSimpleBroker(String... destinationPrefixes)` Enable a simple message broker and configure one or more prefixes to filter destinations targeting the broker (e.g.
    `StompBrokerRelayRegistration` | `enableStompBrokerRelay(String... destinationPrefixes)` Enable a STOMP broker relay and configure the destination prefixes supported by the message broker.
    `protected Collection<String>` | `getApplicationDestinationPrefixes()`
    `protected ChannelRegistration` | `getBrokerChannelRegistration()`
    `protected SimpleBrokerMessageHandler` | `getSimpleBroker(SubscribableChannel brokerChannel)`
    `protected StompBrokerRelayMessageHandler` | `getStompBrokerRelay(SubscribableChannel brokerChannel)`
    `protected String` | `getUserDestinationPrefix()`
    `MessageBrokerRegistry` | `setApplicationDestinationPrefixes(String... prefixes)` Configure one or more prefixes to filter destinations targeting application annotated methods.
    `MessageBrokerRegistry` | `setUserDestinationPrefix(String destinationPrefix)` Configure the prefix used to identify user destinations.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### MessageBrokerRegistry

          public MessageBrokerRegistry(SubscribableChannel clientInboundChannel,
                                       MessageChannel clientOutboundChannel)

  - ### Method Detail

    - #### enableSimpleBroker

          public SimpleBrokerRegistration enableSimpleBroker(String... destinationPrefixes)

      Enable a simple message broker and configure one or more prefixes to filter destinations targeting the broker (e.g. destinations prefixed with "/topic").

    - #### enableStompBrokerRelay

          public StompBrokerRelayRegistration enableStompBrokerRelay(String... destinationPrefixes)

      Enable a STOMP broker relay and configure the destination prefixes supported by the message broker. Check the STOMP documentation of the message broker for supported destinations.

    - #### setApplicationDestinationPrefixes

          public MessageBrokerRegistry setApplicationDestinationPrefixes(String... prefixes)

      Configure one or more prefixes to filter destinations targeting application annotated methods. For example destinations prefixed with "/app" may be processed by annotated methods while other destinations may target the message broker (e.g. "/topic", "/queue").

      When messages are processed, the matching prefix is removed from the destination in order to form the lookup path. This means annotations should not contain the destination prefix.

      Prefixes that do not have a trailing slash will have one automatically appended.

    - #### setUserDestinationPrefix

          public MessageBrokerRegistry setUserDestinationPrefix(String destinationPrefix)

      Configure the prefix used to identify user destinations. User destinations provide the ability for a user to subscribe to queue names unique to their session as well as for others to send messages to those unique, user-specific queues.

      For example when a user attempts to subscribe to "/user/queue/position-updates", the destination may be translated to "/queue/position-updatesi9oqdfzo" yielding a unique queue name that does not collide with any other user attempting to do the same. Subsequently when messages are sent to "/user/{username}/queue/position-updates", the destination is translated to "/queue/position-updatesi9oqdfzo".

      The default prefix used to identify such destinations is "/user/".

    - #### configureBrokerChannel

          public ChannelRegistration configureBrokerChannel()

      Customize the channel used to send messages from the application to the message broker. By default messages from the application to the message broker are sent synchronously, which means application code sending a message will find out if the message cannot be sent through an exception. However, this can be changed if the broker channel is configured here with task executor properties.

    - #### getSimpleBroker

          protected SimpleBrokerMessageHandler getSimpleBroker(SubscribableChannel brokerChannel)

    - #### getStompBrokerRelay

          protected StompBrokerRelayMessageHandler getStompBrokerRelay(SubscribableChannel brokerChannel)

    - #### getApplicationDestinationPrefixes

          protected Collection<String> getApplicationDestinationPrefixes()

    - #### getUserDestinationPrefix

          protected String getUserDestinationPrefix()

    - #### getBrokerChannelRegistration

          protected ChannelRegistration getBrokerChannelRegistration()