我无法找到这个问题的正确答案。使用Spring Batch框架时,可以尝试解决一个通用作业中的所有批处理问题吗?
例如,我正在尝试使用相同的作业处理不同的文本文件(具有不同结构的文件)。
我的想法是从调度程序运行作业,向它传递一个String,其中包含我要处理的文件的名称。然后,我将能够实例化与要处理的文件相关的对象,并且该对象将从一个步骤传递到另一个步骤,并且在每个步骤中,它将能够回答与其分隔符,字段名称相关的问题,插入语句,依此类推。
另一方面,我可以为每个文件编写一个作业,但会重复很多代码。
JobStep是你可能需要的。这是一个特殊的步骤,代表一份工作。因此,您可以设计一个具有多个子作业的“主”作业(也就是类型为JobStep
的步骤)。显然,每个子作业都可以是常规的Spring Batch作业及其步骤等。这种方法中的主要工作是您正在寻找的“一个通用作业”。
此对象将从一个步骤传递到另一个步骤并在每个步骤中传递
这可以通过将执行上下文中的对象(例如文件名)从一个步骤传递到下一个步骤来实现。您可以在Passing Data to Future Steps中找到有关此方法的更多详细信息以及代码示例。
希望这可以帮助。