Spring批处理 - 需要在itemProcessor / itemWriter中使用一个对象,但不能保留它

时间:2013-05-01 19:11:37

标签: spring-batch

我需要访问itemProcessoritemWriter中的对象,但我不想将其保留在executionContext中。我会在预处理步骤中阅读这个对象 最好的方法是什么?

到目前为止我所拥有的是 - 我将对象放在jobExecutionContext中,然后我将itemProcessor的范围设置为“step”并将itemProcessor的属性绑定到"#{stepExecution.jobExecution.executionContext}"。这确实让我可以访问我的对象。但我对此解决方案存在两个问题:

  1. 何时从上下文中删除对象以使其不会保持持久性,必须在完成所有项目之后。
  2. 我的对象可能很大,而且上下文的列似乎是2500.
  3. 这是一个很好的解决方案,如果是,我该如何解决上面提到的两个问题。如果没有,是否有一个很好的方法在春季批次中执行此操作或缓存最佳方式?

    感谢。

1 个答案:

答案 0 :(得分:-2)

执行/作业/步骤... Spring批处理的上下文使用意味着保留在spring batch的元数据中,以便为可重启的功能命名一个!

我之前所做的是创建一个普通的spring bean,其中包含你需要的对象,只需在你的处理器和编写器中自动生成它!

工作完成。