我正在编写一个具有spring-boot支持的spring-batch应用程序,并且正在寻找一种方法来了解MultiResourceItemWriter生成了哪些文件。我想到的第一个解决方案是只有一个文件夹,用于存放生成的文件并检查内容,但是如果spring-batch上已实现某些功能,那就太好了! 目的是进行加密,然后将每个文件上传到sftp服务器。
答案 0 :(得分:0)
由MultiResourceItemWriter
生成的文件名是资源名+由ResourceSuffixCreator
创建的后缀的组合。例如,如果您按照以下方式创建编写器:
MultiResourceItemWriter<String> writer = new MultiResourceItemWriter<>();
writer.setResource(new FileSystemResource(new File("data.txt")));
writer.setResourceSuffixCreator(index -> "part" + index);
然后生成的文件将是data.txt.part1
,data.txt.part2
等。
答案 1 :(得分:0)
MultiResourceItemWriter
不会直接执行写操作,而是将该作业委托给其他组件。
所有这些组件都是ResourceAwareItemWriterItemStream
的实现者,因此您可以编写ResourceAwareItemWriterItemStreamDelegate
,拦截setResource()
method并将资源作为集合存储到当前步骤执行上下文中。
如果要将此资源列表传递给后续步骤,可以使用ExecutionContextPromotionListener
。