场景:-假设有一个消息通道正在接收来自任何流的消息,如果该通道接收到任何消息,那么feed适配器应该拉取feed (一次)并将这些feed发布到其他通道。之后,馈送适配器应停止。有没有可能做到这一点?
发布于 2020-08-29 00:01:28
FeedEntryMessageSource基于以下内容:
Reader reader = this.feedUrl != null
? new XmlReader(this.feedUrl)
: new XmlReader(this.feedResource.getInputStream());
SyndFeed feed = this.syndFeedInput.build(reader);从com.rometools:rome库中。因此,您可以使用它构建一些自定义服务激活器,该激活器将由来自该事件的输入通道上的消息激活。
为了更好地理解提要解析逻辑,我建议研究一下FeedEntryMessageSource源代码:https://github.com/spring-projects/spring-integration/blob/master/spring-integration-feed/src/main/java/org/springframework/integration/feed/inbound/FeedEntryMessageSource.java
更新
好的,另一种方法是将FeedEntryMessageSource作为bean,并从服务激活器引用它的receive()方法。这样,当消息到达服务激活器的输入通道时,它将被按需调用,完全忽略消息内容。
https://stackoverflow.com/questions/63634966
复制相似问题