【发布时间】:2020-10-07 19:13:29
【问题描述】:
我正在使用 spring-batch multiresource JsonItemReader 从以下位置读取多个文件:
public MultiResourceItemReader<Trade> getReader() {
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
Resource[] resources = resolver.getResources("file:" + "D:/files/trade*.json");//trade1.json, trade2.json, etc
MultiResourceItemReader<Trade> reader = new MultiResourceItemReader<>();
reader.setResources(resources);
reader.setDelegate(getDelegate());
return reader;
}
private JsonItemReader<Trade> getDelegate() {
return new JsonItemReaderBuilder<Trade>()
.jsonObjectReader(new GsonJsonObjectReader<>(Trade.class))
.resource(??) /* <--- what to specify here since resource is a mandatory field*/
.name("tradeJsonItemReader")
.build();
}
在getDelegate() 中,考虑到它是必填字段,有没有办法设置一个虚拟资源?我正在 getReader() 方法中的 MultiResourceItemReader 上设置资源,所以我不需要这样做。
我不能简单地从getDelegate() 方法返回new GsonJsonObjectReader<>(Trade.class),因为MultiResourceItemReader 需要ResourceAwareItemReaderItemStream。
这里设置资源的最佳选择是什么?
【问题讨论】:
标签: java spring spring-boot spring-batch