2013-05-01 57 views
1

我需要访问itemProcessoritemWriter中的对象,但我不想将其保存在executionContext中。我会在预处理步骤中阅读这个对象。
这样做的最佳方法是什么?Spring批处理 - 需要使用itemProcessor/itemWriter中的对象但不能保留它

到目前为止,我有什么是 - 我把对象的jobExecutionContext,然后我把我的itemProcessor为“步”的范围和itemProcessor的属性绑定到"#{stepExecution.jobExecution.executionContext}"。这确实使我能够访问我的对象。但我在这个解决方案中遇到了两个问题:

  1. 何时从上下文中删除对象,以便它不保持持久性,它必须在完成所有项目后完成。
  2. 我的目标可能是巨大的,它似乎在上下文中的列大小2500

的这是一个很好的解决方案,如果是,我该如何解决上述两个问题。如果没有,是否有一种好方法可以在春季批量生产或缓存最佳方法?

谢谢。

+0

只是为了更新我最终做的事情 - 我创建了一个缓存对象并使用作业执行ID作为缓存键。 – enkay 2013-07-30 23:05:42

回答

-1

执行/作业/步骤... Spring批处理的上下文使用意味着在可重新启动的特性的spring批处理的元数据中被保留以命名一个!

我以前做过的事情是创建一个普通的spring bean,其中包含对象哟需要,并且只需在处理器和编写器中自动添加@autowired!

工作完成。

+0

好的,谢谢你的回答。 – enkay 2013-05-06 16:45:48