有没有办法知道用MultiResourceItemWriter生成的文件名?

时间:2019-05-06 23:47:03

标签: spring-batch

我正在编写一个具有spring-boot支持的spring-batch应用程序,并且正在寻找一种方法来了解MultiResourceItemWriter生成了哪些文件。我想到的第一个解决方案是只有一个文件夹,用于存放生成的文件并检查内容,但是如果spring-batch上已实现某些功能,那就太好了! 目的是进行加密,然后将每个文件上传到sftp服务器。

2 个答案:

答案 0 :(得分:0)

MultiResourceItemWriter生成的文件名是资源名+由ResourceSuffixCreator创建的后缀的组合。例如,如果您按照以下方式创建编写器:

MultiResourceItemWriter<String> writer = new MultiResourceItemWriter<>();
writer.setResource(new FileSystemResource(new File("data.txt")));
writer.setResourceSuffixCreator(index -> "part" + index);

然后生成的文件将是data.txt.part1data.txt.part2等。

答案 1 :(得分:0)

MultiResourceItemWriter不会直接执行写操作,而是将该作业委托给其他组件。
所有这些组件都是ResourceAwareItemWriterItemStream的实现者,因此您可以编写ResourceAwareItemWriterItemStreamDelegate,拦截setResource() method并将资源作为集合存储到当前步骤执行上下文中。
如果要将此资源列表传递给后续步骤,可以使用ExecutionContextPromotionListener