我是Spring Batch的新手。我需要运行一个夜间批处理过程:
我还需要一些方法来按需运行表A中较小记录子集的规则.Spring Batch是一个不错的选择吗?我可以将数据访问和业务逻辑的逻辑放在ItemProcessor
吗?
非常感谢任何帮助。
这就是我所做的:
DiscountReader
的{{1}},它根据日期和其他条件获取折扣程序_返回DiscountObj类型的对象JdbcCursorItemReader
的{{1}},其中我有(a)SalesProcessor
应该读取一组不同的表来获取与当前DiscountObj中的参数匹配的Sales记录(b)SalesWriter应该将ItemProcessor
提取的数据写入另一个表。 SalesReader
执行的查询的参数是动态的,因为它必须从当前SalesReader
中提取。如何将值设置为SalesReader
的{{1}}?我尝试使用DiscountObj
,但是,即使在设置值之前,查询也会执行。
非常感谢任何帮助/指示。
答案 0 :(得分:2)
您所描述的是一个非常常见的Spring Batch用例。 Spring Batch的基于块的步骤读取每个项目,将其传递给处理器,然后一旦处理了每个块的项目数,就将所有项目写出来。
使用JdbcCursorItemReader
来阅读输入,开发自己的ItemProcessor
以应用规则,并使用JdbcBatchItemWriter
来编写输出是我期望的。