我有以下问题:我有一个文件,其中每行导致 1 个或多个项目被写入数据库。我需要从另一个系统进行查找以找出需要写入多少项。从单行产生的每个项目都必须使用项目处理器链进行转换,最后写入数据库中的多个表。
因为每个项目都需要写入多个表,所以它们必须每个都在自己的事务中。因此,我不能只使用ItemProcessor<Foo, List<Bar>>
which 来处理它。在那种情况下——即使commit-interval
是 1——我最终会在同一个事务中处理多个项目。
我已经看过这个堆栈溢出问题了。由于交易问题,接受的答案对我没有帮助。关于使用 Spring Integration 拆分器的另一个答案听起来很有趣。但是,它并没有提供大量细节。如何将阅读器的输出定义为通道输入?我将如何定义到我的项目编写器的输出通道?我怎么还能在每个新划分的项目上运行项目处理器链?
我无法在春季批处理作业中找到使用拆分器的任何示例。任何建议将不胜感激。