使用Spring Integration一次发送带有消息有效负载的单个json对象字符串?

时间:2017-08-29 02:27:10

标签: spring-boot jms spring-integration activemq

我使用spring集成使用JdbcPollingChannelAdapter轮询数据库,然后使用JmsSendingMessageHandler将结果发布到Activemq队列。我使用MappingJackson2MessageConverter将jdbc结果序列化为json字符串。当消息被发送时,它将作为arraylist发送。是否可以一次只发送一个带有消息有效负载的json序列化对象?这样我就可以像这样收听队列了

/me/

Spring集成配置

@JmsListener(destination = "${activemq.queue.name}")
    public void receive(DomainObj obj)

2 个答案:

答案 0 :(得分:1)

更改select语句以使用JDBC供应商语法仅检索一条记录 - 例如LIMIT 1

然后,删除setMaxRowsPerPoll()(将其保留为默认值为0),您将获得单个结果。

答案 1 :(得分:0)

@Transformer public Object transform(List<Object> list) { return list.get(0); }使用了SQL LIMIT。这就是你如何让它返回一个json对象,而不是一个数组。