gpt4 book ai didi

spring - 使用 Spring Integration 将大型 XML 文件拆分为单独的较小消息并单独处理每个消息

转载 作者:行者123 更新时间:2023-12-02 05:58:35 25 4
gpt4 key购买 nike

我正在使用 Spring Integration,并且有一个包含子项集合的大型 XML 文件,我想将该文件拆分为一组消息,每个消息的有效负载将是子 XML 片段之一。

使用 splitter 是显而易见的,但这需要返回消息集合,这会耗尽内存;我需要将文件拆分为单独的消息,但一次处理一条消息(或更可能使用多线程任务执行器)。

是否有一种标准方法可以做到这一点,而无需编写以编程方式将子消息写入 channel 的自定义组件。

最佳答案

我一直在寻找类似的解决方案,但没有找到任何标准的方法来做到这一点。如果有人需要实现此行为,这是一个相当肮脏的修复:

  1. 使用服务激活器或带有自定义 Bean 的拆分器手动拆分文件。
<int:splitter input-channel="rawChannel" output-channel="splitChannel" id="splitter" >
<bean class="com.a.b.c.MYSplitter" />
</int:splitter>
  • 您的自定义 Bean 应实现 ApplicationContextAware,以便 Spring 可以注入(inject)应用程序上下文。
  • 手动检索输出 channel 并发送每条子消息
  • MessageChannel xsltChannel = (MessageChannel) applicationContext.getBean("splitChannel"); 
    Message<String> message = new GenericMessage<String>(payload));

    splitChannel.send(message);

    关于spring - 使用 Spring Integration 将大型 XML 文件拆分为单独的较小消息并单独处理每个消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11904728/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com