在我的Spring启动和Spring批处理应用程序中,我有这样一个步骤:
@Bean
public Step step1() {
return stepBuilderFactory.get("step1").<FileInfo, FileInfo>chunk(10).reader(FileInfoItemReader).processor(processor()).writer(writer()).build();
}
我的作家是一个空的像下面:
public class BlankWriter<T> implements ItemWriter<T> {
@Override
public void write(List<? extends T> items) throws Exception {
}
}
现在,在我的处理器中,我有这个:
public class FileInfoItemProcessor implements ItemProcessor<FileInfo, FileInfo> {
.....
@Override
public FileInfo process(final FileInfo FileInfo) throws Exception {
myCustomStuff () {
......
}
}
public static void myCustomStuff() {
......
......
}
}
问题:由于所有的对象都传递给处理器,我可以处理它们在我的处理器本身,而不是使用任何转换等,因为我的目的得到解决,通过使用处理器,这是一个很好的做法吗?或者我必须使用一个作家/自定义作家来完成工作?
我认为在编写器中进行REST POST调用比在处理器中进行REST POST调用更合适。REST POST调用是一种对远程位置的写操作。
因此,您可以省略处理器(因为它是可选的)并将该代码移动到项写入器(而不是使用带有空write
方法的NoOp项写入器)。