DefaultJmsListenerContainer с использованием BeanFactoryPostProcessor - PullRequest
0 голосов
/ 14 января 2020

В настоящее время я пытаюсь поддерживать динамический 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()
);

Но, как вы можете видеть, я не могу установить конечную точку очереди для прослушивания. Как я могу сделать это отсюда?

...