Мне нужно создать весеннее пакетное задание, которое будет считывать файлы из сетевого расположения, и эти файлы могут иметь формат csv или xls / xlsx.
Поскольку формат файла отличается, я использовал flatfileItemReader и PoiItemReader, предоставляемые spring-batch-excel.
После чтения этих файлов мне нужно обновить таблицы БД.
Я не могу решить, как мне подходить к этой логике c, где в зависимости от формата файла необходимо вызывать другое устройство чтения.
Сначала я подумал, что создам шаг, который прочитает файл из этого места, а затем реализует JobExecutionDecider, который проверит расширение файла и вызовет соответствующий fileReader. Тем не менее, я не могу понять, как я получу ответ на шаг, то есть файл объекта
public class FileReaderDecider implements JobExecutionDecider {
@Override
public FlowExecutionStatus decide(JobExecution jobExecution, StepExecution stepExecution) {
return null;
}
}
Я не уверен, думаю ли я в правильном направлении. Будем весьма благодарны за любые предложения по выбору ридера на основе формата файла.