itemProcessor
と の両方でオブジェクトにアクセスする必要がありますitemWriter
が、executionContext
. このオブジェクトを前処理ステップで読み取ります。
それを行う最善の方法は何ですか?
これまでのところ、オブジェクトを に入れ、jobExecutionContext
スコープitemProcessor
を「ステップ」に設定し、のプロパティを にバインドしitemProcessor
ます"#{stepExecution.jobExecution.executionContext}"
。これにより、オブジェクトにアクセスできます。しかし、このソリューションには 2 つの問題があります。
- 永続化されないようにコンテキストからオブジェクトを削除するのはいつですか?それは、すべての項目が完了した後である必要があります。
- オブジェクトが巨大になる可能性があり、コンテキストの列のサイズが 2500 のようです。
これは良い解決策ですか? もしそうなら、どうすれば上記の 2 つの懸念を解決できますか? そうでない場合、春のバッチでこれを行う良い方法はありますか、それともキャッシングが最善の方法ですか?
ありがとう。