Class BrokerEventListener

java.lang.Object
org.springframework.amqp.rabbit.core.BrokerEventListener
All Implemented Interfaces:
org.springframework.amqp.core.MessageListener, ConnectionListener, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationEventPublisherAware, org.springframework.context.Lifecycle, org.springframework.context.Phased, org.springframework.context.SmartLifecycle

public class BrokerEventListener extends Object implements org.springframework.amqp.core.MessageListener, org.springframework.context.ApplicationEventPublisherAware, ConnectionListener, org.springframework.context.SmartLifecycle
When the event-exchange-plugin is enabled (see https://www.rabbitmq.com/event-exchange.html), if an object of this type is declared as a bean, selected events will be published as BrokerEvents. Such events can then be consumed using an ApplicationListener or @EventListener method. An AnonymousQueue will be bound to the amq.rabbitmq.event topic exchange with the supplied keys.
Since:
2.1
  • Constructor Details

    • BrokerEventListener

      public BrokerEventListener(ConnectionFactory connectionFactory, String... eventKeys)
      Construct an instance using the supplied connection factory and event keys. Event keys are patterns to match routing keys for events published to the amq.rabbitmq.event topic exchange. They can therefore match wildcards; examples are user.#, queue.created. Refer to the plugin documentation for information about available events. A single-threaded DirectMessageListenerContainer will be created; its lifecycle will be controlled by this object's SmartLifecycle methods.
      Parameters:
      connectionFactory - the connection factory.
      eventKeys - the event keys.
    • BrokerEventListener

      public BrokerEventListener(AbstractMessageListenerContainer container, String... eventKeys)
      Construct an instance using the supplied listener container factory and event keys. Event keys are patterns to match routing keys for events published to the amq.rabbitmq.event topic exchange. They can therefore match wildcards; examples are user.#, queue.created. Refer to the plugin documentation for information about available events. The container's lifecycle will be not be controlled by this object's SmartLifecycle methods. The container should not be configured with queues or a MessageListener; those properties will be replaced.
      Parameters:
      container - the listener container.
      eventKeys - the event keys.
  • Method Details

    • setApplicationEventPublisher

      public void setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher applicationEventPublisher)
      Specified by:
      setApplicationEventPublisher in interface org.springframework.context.ApplicationEventPublisherAware
    • getBindingsFailedException

      @Nullable public Exception getBindingsFailedException()
      Return any exception thrown when attempting to bind the queue to the event exchange.
      Returns:
      the exception.
    • start

      public void start()
      Specified by:
      start in interface org.springframework.context.Lifecycle
    • stop

      public void stop()
      Specified by:
      stop in interface org.springframework.context.Lifecycle
    • isRunning

      public boolean isRunning()
      Specified by:
      isRunning in interface org.springframework.context.Lifecycle
    • getPhase

      public int getPhase()
      Specified by:
      getPhase in interface org.springframework.context.Phased
      Specified by:
      getPhase in interface org.springframework.context.SmartLifecycle
    • setPhase

      public void setPhase(int phase)
    • isAutoStartup

      public boolean isAutoStartup()
      Specified by:
      isAutoStartup in interface org.springframework.context.SmartLifecycle
    • setAutoStartup

      public void setAutoStartup(boolean autoStartup)
    • onMessage

      public void onMessage(org.springframework.amqp.core.Message message)
      Specified by:
      onMessage in interface org.springframework.amqp.core.MessageListener
    • onCreate

      public void onCreate(@Nullable Connection connection)
      Description copied from interface: ConnectionListener
      Called when a new connection is established.
      Specified by:
      onCreate in interface ConnectionListener
      Parameters:
      connection - the connection.