场景: 具有2个步骤的Spring Batch作业:
挑战:
由于文件名未知,因此我们使用PathMatchingResourcePatternResolver.getResources()
来获取resources
。
返回的资源的长度始终为0,因为在bean初始化时目录中没有文件。
@Bean
Resource[] resources() throws IOException {
final PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
final Resource[] resources = resolver.getResources("file:" + destinationDir + "/*.csv");
return resources;
}
有什么想法吗?预先感谢!
答案 0 :(得分:3)
您可以在Tasklet步骤中将文件名保存在JobExecutionContext
内,然后在块步骤中使用这些名称来初始化资源。
Spring Batch文档中的更多详细信息:Configuring a Step。
由于Step Scope Bean,Spring Batch中的这种后期绑定是可能的。您可以详细了解here。