【发布时间】:2021-06-21 10:10:44
【问题描述】:
我只使用了一个使用面向块的处理(ItemReader、ItemProcessor、ItemWriter)的步骤, 从文件中读取数据,处理数据(后面有很多业务逻辑有条件),最后一步就是将数据写入数据库。
我发现有点棘手的部分是处理器部分,我不能真正添加条件流,因为我既不使用复合处理器也使用块处理,因为处理某些流需要满足一些条件(在对数据 - 有时会导致直接数据返回)。
有没有更好的方法来实现所有这些具有许多条件和检查的业务逻辑,或者在特定条件下使用 Spring Batch 中的块处理来调用另一个 ItemProcessor 中的 ItemProcessor?
谢谢
【问题讨论】:
-
查看装饰器、责任链和策略模式。对于此类问题,他们将成为您最好的朋友。
-
感谢@RichardBarker 提出的解决方案,这意味着我将只使用一个 ItemProcessor 并且实现可能是这些模式之一?
-
基本上,是的。这些模式中的一种或多种就可以解决问题。您的 ItemProcessor 可以启动责任链,并且链的每个部分决定它下一步的去向。装饰器将让您动态更改执行流程。策略类似。模式是解决计算机编程问题的起点之一
-
感谢@RichardBarker 的帮助,我真的需要一些指导 :)) 我会做一些研究并开始实施其中一种或多种模式
-
如果您得到答案,请在此处发布并告诉我们!我们很乐意看到它,来自未来的人们可以从中受益!
标签: java spring-boot spring-batch chunks