我目前正在尝试在我的应用程序中支持动态多个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()
);
但是如您所见,我无法设置队列端点进行侦听。我如何从这里开始?
您能够弄清楚如何设置队列名称。我正在解决相同的问题。连接到多个不同代理上的队列。