public class RabbitListenerEndpointRegistry extends Object implements DisposableBean, SmartLifecycle, ApplicationContextAware, ApplicationListener<ContextRefreshedEvent>
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 MessageListenerContainer
s 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.
RabbitListenerEndpoint
,
MessageListenerContainer
,
RabbitListenerContainerFactory
Modifier and Type | Field and Description |
---|---|
protected Log |
logger |
DEFAULT_PHASE
Constructor and Description |
---|
RabbitListenerEndpointRegistry() |
protected final Log logger
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
setApplicationContext
in interface ApplicationContextAware
BeansException
public MessageListenerContainer getListenerContainer(String id)
MessageListenerContainer
with the specified id or
null
if no such container exists.id
- the id of the containernull
if no container with that id existsRabbitListenerEndpoint.getId()
,
getListenerContainerIds()
public Set<String> getListenerContainerIds()
MessageListenerContainer
instance(s).getListenerContainer(String)
public Collection<MessageListenerContainer> getListenerContainers()
MessageListenerContainer
instance(s).public void registerListenerContainer(RabbitListenerEndpoint endpoint, RabbitListenerContainerFactory<?> factory)
RabbitListenerEndpoint
.
This create the necessary infrastructure to honor that endpoint with regards to its configuration.
endpoint
- the endpoint to addfactory
- the listener factory to useregisterListenerContainer(RabbitListenerEndpoint, RabbitListenerContainerFactory, boolean)
public void registerListenerContainer(RabbitListenerEndpoint endpoint, RabbitListenerContainerFactory<?> factory, boolean startImmediately)
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.
endpoint
- the endpoint to add.factory
- the RabbitListenerContainerFactory
to use.startImmediately
- start the container immediately if necessarygetListenerContainers()
,
getListenerContainer(String)
protected MessageListenerContainer createListenerContainer(RabbitListenerEndpoint endpoint, RabbitListenerContainerFactory<?> factory)
MessageListenerContainer
using the specified factory.endpoint
- the endpoint to create a MessageListenerContainer
.factory
- the RabbitListenerContainerFactory
to use.MessageListenerContainer
.@Nullable public MessageListenerContainer unregisterListenerContainer(String id)
id
- the container id.public void destroy()
destroy
in interface DisposableBean
public int getPhase()
getPhase
in interface Phased
getPhase
in interface SmartLifecycle
public boolean isAutoStartup()
isAutoStartup
in interface SmartLifecycle
public void stop(Runnable callback)
stop
in interface SmartLifecycle
public void onApplicationEvent(ContextRefreshedEvent event)
onApplicationEvent
in interface ApplicationListener<ContextRefreshedEvent>