Читать все файлы из каталога Spring batch FileReadingMessageSource - PullRequest
0 голосов
/ 19 декабря 2018

Я использую весеннюю партию для своего приложения.По сути, все, что мне нужно сделать, это прочитать все XML-файлы из входного каталога.Когда я получаю все файлы XML, каждый файл должен быть преобразован в корневой объект.Этот объект мне нужно разделить на два объекта и распечатать их в файл CSV.Итак, если во входной папке 10 файлов XML, мне нужно сгенерировать CSV из 20 строк.Если их 150, у CSV будет 300 строк и т. Д. Я имел в виду использовать FileReadingMessageSource.У него есть очередь.Но проблема в этом заключается в типе возврата этой очереди.Он возвращает файл, и мне нужен список очередей.Могу ли я как-нибудь получить весь список файлов XML из каталога в моем ридере?

1 Ответ

0 голосов
/ 19 декабря 2018

IMO, вам не нужно использовать FileReadingMessageSource (и внедрять Spring Integration) в базовом сценарии использования.

Вы можете создать ридер, который возвращает File, процессор, который отображаетFile к корневому объекту (и разделить на два объекта) и, наконец, FlatFileItemWriter для генерации CSV-вывода.

РЕДАКТИРОВАТЬ: добавить пример читателя:

@Bean
public ItemReader<File> itemReader() throws IOException {
    List<File> files = Files.walk(Paths.get("/path/to/directory"))
            .filter(Files::isRegularFile)
            .map(Path::toFile)
            .collect(Collectors.toList());
    return new IteratorItemReader<>(files);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...