我刚刚使用Spring的@JmsListener配置了一个监听器,但是当我使用单个方法参数时,我只从队列中收到一条消息。
@JmsListener(...)
public void onMessage(Message message)
在这种情况下它不像传统的监听器 - 只收到一条消息!不像我期望的那样,不是一次一个地传入单个消息。
但是,如果我将方法定义更改为
@JmsListener(...)
public void onMessage(List<Message> messages)
我收到所有这些作为列表。这种情况从未发生过,本例中唯一未知的是Solace队列的配置方式。我可能不知道队列中是否有批处理设置?
答案 0 :(得分:0)
原来这些消息实际上是作为列表发送的!
如:
jmsTemplate.convertAndSend(listOfMessages);
如果您将侦听器定义为:
,则Spring似乎只允许访问此列表中的第一个public void onMessage(Message message){}