如何为 JSON 作业动态指定 ItemProcessor?
How can I specify dynamically the ItemProcessor for a JSON Job?
我有不同的 JSON 文件,需要读取、处理和写入包含 JSON 数组的 JSON 对象。
输出格式(更具体地说:输出class)对所有文件都是一样的。让我们称之为 OutputClass
。因此,项目处理器类似于 ItemProcessor<X, OutPutClass>
。其中 X
是特定 JSON 文件的 class。
文件之间的区别是:
- JSON数组/信息在每个JSON文件中的不同位置
- JSON 数组中的 JSON 个对象的结构不同(文件
a
中的对象与文件 b
中的对象语法不同)
我已经遇到了 @StepScope
并且能够动态生成一个 reader(取决于作业参数),它在 JSON 结构中的不同位置开始读取。
但我不知道如何根据作业参数动态选择 ItemProcessor。因为我有很多不同的 JSON 文件,想减少为每个文件编写的代码量。
由于您能够通过使用步进范围的 bean(我也会这样做)基于作业参数创建动态项 reader,您可以使用相同的方法来同时创建一个动态项目处理器。
我有不同的 JSON 文件,需要读取、处理和写入包含 JSON 数组的 JSON 对象。
输出格式(更具体地说:输出class)对所有文件都是一样的。让我们称之为 OutputClass
。因此,项目处理器类似于 ItemProcessor<X, OutPutClass>
。其中 X
是特定 JSON 文件的 class。
文件之间的区别是:
- JSON数组/信息在每个JSON文件中的不同位置
- JSON 数组中的 JSON 个对象的结构不同(文件
a
中的对象与文件b
中的对象语法不同)
我已经遇到了 @StepScope
并且能够动态生成一个 reader(取决于作业参数),它在 JSON 结构中的不同位置开始读取。
但我不知道如何根据作业参数动态选择 ItemProcessor。因为我有很多不同的 JSON 文件,想减少为每个文件编写的代码量。
由于您能够通过使用步进范围的 bean(我也会这样做)基于作业参数创建动态项 reader,您可以使用相同的方法来同时创建一个动态项目处理器。