1

itemProcessorと の両方でオブジェクトにアクセスする必要がありますitemWriterが、executionContext. このオブジェクトを前処理ステップで読み取ります。
それを行う最善の方法は何ですか?

これまでのところ、オブジェクトを に入れ、jobExecutionContextスコープitemProcessorを「ステップ」に設定し、のプロパティを にバインドしitemProcessorます"#{stepExecution.jobExecution.executionContext}"。これにより、オブジェクトにアクセスできます。しかし、このソリューションには 2 つの問題があります。

  1. 永続化されないようにコンテキストからオブジェクトを削除するのはいつですか?それは、すべての項目が完了した後である必要があります。
  2. オブジェクトが巨大になる可能性があり、コンテキストの列のサイズが 2500 のようです。

これは良い解決策ですか? もしそうなら、どうすれば上記の 2 つの懸念を解決できますか? そうでない場合、春のバッチでこれを行う良い方法はありますか、それともキャッシングが最善の方法ですか?

ありがとう。

4

1 に答える 1

-2

execution/job/step ... Spring バッチで使用されるコンテキストは、再起動可能な機能のために Spring バッチのメタデータに永続化されることを意図しています。

私が以前に行ったことは、必要なオブジェクトを使用して通常のSpring Beanを作成し、プロセッサとライターで@autowiredするだけです!

ジョブ完了。

于 2013-05-02T15:07:46.743 に答える