我使用spring集成使用JdbcPollingChannelAdapter轮询数据库,然后使用JmsSendingMessageHandler将结果发布到Activemq队列。我使用MappingJackson2MessageConverter将jdbc结果序列化为json字符串。当消息被发送时,它将作为arraylist发送。是否可以一次只发送一个带有消息有效负载的json序列化对象?这样我就可以像这样收听队列了
/me/
Spring集成配置
@JmsListener(destination = "${activemq.queue.name}")
public void receive(DomainObj obj)
答案 0 :(得分:1)
更改select语句以使用JDBC供应商语法仅检索一条记录 - 例如LIMIT 1
。
然后,删除setMaxRowsPerPoll()
(将其保留为默认值为0),您将获得单个结果。
答案 1 :(得分:0)
@Transformer public Object transform(List<Object> list) { return list.get(0); }
使用了SQL LIMIT。这就是你如何让它返回一个json对象,而不是一个数组。