これには3つの方法があります。それぞれには長所と短所があります。
は、あなたがファイル(processFiles
言う)を処理ステップをpreceedes validateFileName
ステップを使用してジョブを設定することができます
を検証するためのステップを使用してください。 validateFileName
ステップは、必要なファイル名の検証を行い、次に処理するファイルを提供します。どのように通信するかは、有効なファイルを新しいディレクトリに移動するか、ジョブのExecutionContext
を使用して処理するファイルの名前を格納するのと同じくらい複雑なものにすることができます。
この利点は、処理から検証を切り離すことです。欠点は、余分なステップがあるので、ジョブを少し複雑にすることです。
は、あなたが検証を行うためにStepExecutionListener#beforeStep()
コールを使用することができ、検証
を行うにはStepExecutionListenerを使用してください。同じ概念は、検証するものとそうでないものとのやりとりの仕方に関して、以前と同じように適用されます。
これはあまり複雑ではないかもしれませんが、処理と検証をより緊密に(わずかながらも)組み合わせることができます。
は、それが
を読み込む前に、この最後のオプションは、MultiResourceItemReader
に似ていますが、それを読む前にファイルの検証にフックを提供ItemReader
実装を記述することです検証ItemReader
を使用してください。ファイルが検証されない場合は、スキップします。
このオプションは、検証と処理を再度結合しますが、この特定のユースケースに対して再利用可能な抽象概念を提供する可能性があります。
こちらがお役に立てば幸いです。
検証するファイルのみを処理するか、検証エラーが残りの処理を停止しますか? –
有効なファイルを処理するのは – marie