【发布时间】:2021-06-17 14:28:33
【问题描述】:
我正在使用 spring 集成,想知道如何覆盖 @Splitter 组件的默认分隔符。我专门使用FileSplitter 组件。我的目标是通过入站文件适配器接收逗号分隔的文件,并使用逗号作为分隔符拆分该文件。如果我错了,请纠正我,但 @Splitter 组件默认基于 '\n' 拆分文件。以下是我目前的代码。
@Bean
@InboundChannelAdapter(value = "fileAdapterInCh" , poller = @Poller(fixedDelay = "1000"))
public MessageSource<File> fileReadingMessageSource() {
log.info("Got a message from channel 'httpInputRequestCh' in fileReadingMessageSource");
FileReadingMessageSource source = new FileReadingMessageSource();
source.setAutoCreateDirectory(true);
source.setDirectory(new File(inputFilePath));
ChainFileListFilter<File> cflf = new ChainFileListFilter<>();
cflf.addFilter(new LastModifiedFileListFilter(30));
cflf.addFilter(new AcceptOnceFileListFilter<>());
cflf.addFilter(new SimplePatternFileListFilter(fileExtention));
source.setFilter(cflf);
List<File> files = source.getScanner().listFiles(new File(inputFilePath));
source.start();
log.info("Listing all files found in '" + inputFilePath + "': " + files );
return source;
}
@Bean
@Splitter(inputChannel = "fileAdapterInCh" )
public FileSplitter fileSplitter() {
log.info("file adapter file splitter " );
FileSplitter fs = new FileSplitter();
fs.setOutputChannelName("testing1");
return fs;
}
编辑:
我是否应该使用 FileToStringTransformer 将 CSV 文件的内容转换为字符串,然后使用 DefaultMessageSplitter 组件,因为该类具有设置分隔符的方法?
【问题讨论】:
标签: java spring-boot spring-integration