В настоящее время я пытаюсь поддерживать динамический c сценарий с несколькими jms-провайдерами в моем приложении. До сих пор я достиг создания DefaultMessageListenerContainer с использованием постпроцессора. Крутая часть заключается в том, что у DefaultMessageContainerListener есть свойство destinationName, где вы можете легко установить очередь для прослушивания / отправки сообщений.
Однако у DefaultJmsListenerContainerFactory
нет такого способа задать имя очереди. Я достиг отметки SimpleJmsListenerEndpoint
, которую DefaultJmsListenerContainerFactory
использовал для запуска контейнера. Но я не могу найти, как это установить. Пожалуйста, посмотрите ниже, что я сделал до сих пор.
beanDefinitionRegistry.registerBeanDefinition("messageListenerContainer",
BeanDefinitionBuilder.rootBeanDefinition(DefaultJmsListenerContainerFactory.class)
.addPropertyReference("connectionFactory", "queueConnectionFactory")
.addPropertyReference("destinationResolver", "jndiDestinationResolver")
.addPropertyValue("concurrency", concurrency)
.addPropertyValue("sessionAcknowledgeMode", Session.AUTO_ACKNOWLEDGE)
.getBeanDefinition()
);
Но, как вы можете видеть, я не могу установить конечную точку очереди для прослушивания. Как я могу сделать это отсюда?