1

私が達成しようとしているのは、ItemProcessor.process メソッドを実行する前にメソッドを1 回だけ呼び出したいということです。

ItemProcessListener.beforeProcess を使用すると、ItemReader で読み取られるすべてのアイテムに対して呼び出されます。

これを達成する方法はありますか?ItemProcessListener の他の代替手段はありますか?

4

1 に答える 1

1

メソッドが確実に 1 回呼び出されるようにする最善の選択は、a を使用してStepExecutionListener、このリスナーを ItemProcessor を使用するステップにバインドすることです。
または、直前に呼び出す必要がある場合は、 でフラグをItemProcessor.process()追加しItemProcessListenerて管理しStepExecutionContextます。このフラグが設定されていない ( false) または存在しない場合は、メソッドを呼び出してフラグを設定し、それ以外の場合trueは何もしません。
ただし、ユースケースをより正確に把握できれば、より良い解決策を見つけることができます。
希望が助けになります!

于 2013-08-22T17:11:06.617 に答える