2016-05-30 2 views
0

Я работаю с партией Spring в первый раз, и мне нужна помощь в шаге валидации.Шаг валидации весенней серии

Перед НАСТОЯЩЕМУ начали мое пакетное задание, мне нужна проверка на файл будет обрабатываться как:

  • Проверьте имя с информацией из базы данных
  • Проверки первых и последней строки (которым специфичен) с информация из системы и баз данных
  • номера чека общей строки с данными в первой строке

После этого я действительно могу начать свое пакетное задание.

Я имею в виду несколько шагов, соединяющих друг друга, первый шаг, выполняющий проверку, если файл недействителен, процесс переходит на шаг ошибки.

Как я могу выполнить эту проверку? Все найденные читатели дают мне только одну строку файла, я должен создать своего собственного читателя? Какой подход вы предпримете для управления этим поведением?

ответ

0

Вы можете использовать один шаг и создать прослушиватель, и вы можете проверить все, что хотите, на этапе beforeStep, или у вас может быть два шага, и первый шаг для проверки и возврата соответствующего статуса возврата в afterstep-метод StepExecutionListener.

В кратко- слушателей используют для проверки, относятся очень хороший пример here

Для проверки входного файла, вы можете передать этот example

1

Для первой точки используют JobExecutionDecider; если тест не прошел, завершите работу с ошибкой (ошибками). Для остальных точек вы можете подойти к проблеме написания собственного читателя или

  • для первой линии FlatFileItemReader.setLinesToSkip() и FlatFileItemReader.setSkippedLinesCallback()
  • использовать в PeekableItemReader для того, чтобы проверить, если вы находитесь на последней строке и выполнить другую проверку в процессоре фаза.

Для такого подхода может потребоваться написать разные объекты домена для первой строки, последней строки и других строк.

Смежные вопросы