Class RabbitListenerEndpointRegistry

java.lang.Object
org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry
All Implemented Interfaces:
EventListener, org.springframework.beans.factory.Aware, org.springframework.beans.factory.DisposableBean, org.springframework.context.ApplicationContextAware, org.springframework.context.ApplicationListener<org.springframework.context.event.ContextRefreshedEvent>, org.springframework.context.Lifecycle, org.springframework.context.Phased, org.springframework.context.SmartLifecycle

public class RabbitListenerEndpointRegistry extends Object implements org.springframework.beans.factory.DisposableBean, org.springframework.context.SmartLifecycle, org.springframework.context.ApplicationContextAware, org.springframework.context.ApplicationListener<org.springframework.context.event.ContextRefreshedEvent>
Creates the necessary MessageListenerContainer instances for the registered endpoints. Also manages the lifecycle of the listener containers, in particular within the lifecycle of the application context.

Contrary to MessageListenerContainers created manually, listener containers managed by registry are not beans in the application context and are not candidates for autowiring. Use getListenerContainers() if you need to access this registry's listener containers for management purposes. If you need to access to a specific message listener container, use getListenerContainer(String) with the id of the endpoint.

Since:
1.4
See Also:
  • Field Details

    • logger

      protected final org.apache.commons.logging.Log logger
  • Constructor Details

    • RabbitListenerEndpointRegistry

      public RabbitListenerEndpointRegistry()
  • Method Details

    • setApplicationContext

      public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws org.springframework.beans.BeansException
      Specified by:
      setApplicationContext in interface org.springframework.context.ApplicationContextAware
      Throws:
      org.springframework.beans.BeansException
    • getListenerContainer

      public MessageListenerContainer getListenerContainer(String id)
      Return the MessageListenerContainer with the specified id or null if no such container exists.
      Parameters:
      id - the id of the container
      Returns:
      the container or null if no container with that id exists
      See Also:
    • getListenerContainerIds

      public Set<String> getListenerContainerIds()
      Return the ids of the managed MessageListenerContainer instance(s).
      Returns:
      the ids.
      Since:
      1.5.2
      See Also:
    • getListenerContainers

      public Collection<MessageListenerContainer> getListenerContainers()
      Returns:
      the managed MessageListenerContainer instance(s).
    • registerListenerContainer

      public void registerListenerContainer(RabbitListenerEndpoint endpoint, RabbitListenerContainerFactory<?> factory)
      Create a message listener container for the given RabbitListenerEndpoint.

      This create the necessary infrastructure to honor that endpoint with regards to its configuration.

      Parameters:
      endpoint - the endpoint to add
      factory - the listener factory to use
      See Also:
    • registerListenerContainer

      public void registerListenerContainer(RabbitListenerEndpoint endpoint, RabbitListenerContainerFactory<?> factory, boolean startImmediately)
      Create a message listener container for the given RabbitListenerEndpoint.

      This create the necessary infrastructure to honor that endpoint with regards to its configuration.

      The startImmediately flag determines if the container should be started immediately.

      Parameters:
      endpoint - the endpoint to add.
      factory - the RabbitListenerContainerFactory to use.
      startImmediately - start the container immediately if necessary
      See Also:
    • createListenerContainer

      protected MessageListenerContainer createListenerContainer(RabbitListenerEndpoint endpoint, RabbitListenerContainerFactory<?> factory)
      Create and start a new MessageListenerContainer using the specified factory.
      Parameters:
      endpoint - the endpoint to create a MessageListenerContainer.
      factory - the RabbitListenerContainerFactory to use.
      Returns:
      the MessageListenerContainer.
    • unregisterListenerContainer

      @Nullable public MessageListenerContainer unregisterListenerContainer(String id)
      Remove a listener container from the registry.
      Parameters:
      id - the container id.
      Returns:
      the container, or null if there is no registration matching the id.
      Since:
      2.0.6
    • destroy

      public void destroy()
      Specified by:
      destroy in interface org.springframework.beans.factory.DisposableBean
    • getPhase

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

      public boolean isAutoStartup()
      Specified by:
      isAutoStartup in interface org.springframework.context.SmartLifecycle
    • 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
    • stop

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

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

      public void onApplicationEvent(org.springframework.context.event.ContextRefreshedEvent event)
      Specified by:
      onApplicationEvent in interface org.springframework.context.ApplicationListener<org.springframework.context.event.ContextRefreshedEvent>