mem*_*und 10 java directory spring file spring-batch
我想配置spring-batch为csv按顺序读取特定文件夹中的所有文件.
以下方法不起作用,因为委托将尝试打开一个名为的文件*.csv,这当然是无效的.我有什么要改变的?
@Bean
public ItemReader<String> reader() {
MultiResourceItemReader<String> reader = new MultiResourceItemReader<>();
reader.setResources(new Resource[] {new FileSystemResource("/myfolder/*.csv")});
reader.setDelegate(new FlatFileItemReader<>(..));
return reader;
}
Run Code Online (Sandbox Code Playgroud)
等效的xml配置如下所示,如何将其重写为仅限java的配置?
<bean id="reader" class="org.springframework.batch.item.file.MultiResourceItemReader">
<property name="resources" value="/mypfolder/*.csv"/>
<property name="delegate" ref="flatFileItemReader"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
Tha*_*iya 10
像这样使用PathMatchingResourcePatternResolver.
@Bean
public ItemReader<String> reader() {
Resource[] resources = null;
ResourcePatternResolver patternResolver = new PathMatchingResourcePatternResolver();
try {
resources = patternResolver.getResources("/myfolder/*.csv");
} catch (IOException e) {
e.printStackTrace();
}
MultiResourceItemReader<String> reader = new MultiResourceItemReader<>();
reader.setResources(resources);
reader.setDelegate(new FlatFileItemReader<>(..));
return reader;
Run Code Online (Sandbox Code Playgroud)
}
小智 5
或者,@Value 注释可用于让 ResourceArrayPropertyEditor 将字符串转换为 Resource[]。
@Bean
@StepScope
public ItemReader<String> reader(
@Value("file:/myfolder/*.csv") Resource[] resources
) {
MultiResourceItemReader<String> reader = new MultiResourceItemReader<>();
reader.setResources(resources);
reader.setDelegate(new FlatFileItemReader<>(..));
return reader;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15025 次 |
| 最近记录: |