我有一个JdbcCursorItemReader,它从数据库中读取并使用行映射器将结果集转换为对象 . 现在的要求是将对象编组为XML,然后必须将其放在消息队列中 .
三个问题:
1. Spring Batch中的编组器是作为ItemProcessor还是作为ItemWriter实现的?
2. 无需将XML写入文件,而只需将其作为字符串对象发送到消息中 . Spring Batch中最好的方法是什么?
3. 如果编组器和消息调度程序都应该作为单独的编写器实现,那么如何将它们链接起来呢?
任何示例代码或链接将非常感激 .
谢谢
2 回答
我认为Spring Batch现在可以使用
ChannelItemWriter
. 如果您从将XML剪辑写入Spring集成通道(可以由消息队列支持)的角度来处理此问题,则可以通过这种方式编写自定义ItemWriter
. 这将允许您以几种不同的方式接近项目转换(在ItemProcessor
或通过Spring Integration中的变换器) . 如果你采用这种方法,我建议你将作者贡献给Spring Batch .创建一个自定义编写器,将在通过ItemWriter写入数据时使用 .
示例代码HERE,根据您的要求进行了一些修改:
在此示例中,您必须提及输出资源,但生成的XML文件始终只包含根标记名称 .
XML: