Я создал несколько весенних 4.1.6 методов @JmsListener для приема сообщений из очередей. Я хотел бы получить список имен слушателя для администратора цели:Spring List Listener Names
@JmsListener(
destination = "${jms.destination.name}"
, containerFactory = "myJmsContainerFactory"
, id ="myListener")
public void receiveMessage(String message) {
System.out.println("Received <" + message + ">");
}
, и я хочу, чтобы отобразить идентификатор/имя слушателей для целей администратора. Я могу остановить и запустить слушателей с помощью JmsListenerEndpointRegistry, но не могу понять, как получить имя конкретных слушателей.
JmsListenerEndpointRegistry registry = context.getBean(org.springframework.jms.config.JmsListenerEndpointRegistry.class);
Collection<MessageListenerContainer> listeners = registry.getListenerContainers();
MessageListenerContainer mlc = registry.getListenerContainer("myListener");
System.out.println("Running" + mlc.isRunning());
mlc.stop();
В отладить Коллекцию можно рассматривать как Collections $ UnmodifiableCollection с LinkedHashMap, который имеет слушателю идентификатор, myListener в этом случае, в качестве ключевого значения LinkedHashMap