Я пытаюсь прочитать файл, но мне нужно разделить его построчно, используя Spring Integration DSL. Что мне нужно добавить в потоки интеграции, чтобы он заработал
Источник сообщения
@Bean
public MessageSource<File> sourceDirectory() {
FileReadingMessageSource messageSource = new FileReadingMessageSource();
messageSource.setDirectory(new File(fileSource));
return messageSource;
}
Фильтр
@Bean
public GenericSelector<File> onlyCSVs() {
return (file) -> file.getName().endsWith(".csv");
}
Преобразователь файлов
@Bean
public FileToStringTransformer fileToStringTransformer() {
return new FileToStringTransformer();
}
Интеграционный поток
@Bean
public StandardIntegrationFlow integrationFlow() {
return IntegrationFlows
.from(sourceDirectory(), configurer -> configurer.poller(Pollers.fixedDelay(10000)))
.channel("fileInputChannel")
.filter(onlyCSVs())
.transform(fileToStringTransformer())
.handle(m -> System.out.println((String.valueOf(Math.random()) + m.getPayload())))
.get();
}