从Spring Batch作业/处理器返回对象

时间:2016-01-12 22:22:41

标签: spring spring-batch

我有一个Spring Batch作业,它读入一个非常大的固定长度文件并将其映射到一个对象。验证了相关处理任务中的所有数据。

作为Spring和Spring Batch的新手我想知道是否有可能退出工作,当我将作业作为另一个过程的一部分运行时,在特定情况下使用完全填充的对象(我想要访问数据。)

我意识到我可以在没有批处理的情况下执行上述操作,并且它似乎是为了其目的而设计了范围限制。

我可以序列化处理器中的对象并走这条路线但是为了让我立即满意,我希望有办法解决这个问题。

由于

1 个答案:

答案 0 :(得分:0)

在我的@configuration类中进行批处理,我创建了一个类变量(它是我想要获取的对象的列表),并使用no arg构造函数进行实例化。

我的Step,ItemReader,LineMapper设置为使用列表进行输入。自定义FieldSetMapper将从构造函数实例化的列表作为参数,并在读取和映射文件时添加到列表中。类似地,我的自定义ItemProcessor将列表作为输入并返回它。

最后,我创建了一个返回填充列表的ReturnObjectList bean。

在我的主要内容中,我将AnnotationConfigApplicationContext getbean转换为该对象类型的列表。我现在能够使用从我的主应用程序范围内的固定文件生成的对象列表。

在Spring Java配置应该如何工作方面,不确定这是否是一个健康的工作,但它确实给了我我需要的东西。