Spring 批处理 - 处理器还是写入器?

Spring batch - Processor or Writer?

在我的 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() {
       ......
       ......
    }


  }

问题: 由于所有对象都传递给处理器,我可以在我的处理器本身中处理它们,而不是使用任何转换等,因为我的目的通过使用处理器得到解决,这是一个好习惯吗?或者我必须使用 writer/custom-writer 才能完成工作?

我认为在编写器中执行 REST POST 调用比在处理器中执行更合适。 REST POST 调用是一种对远程位置的写操作。

因此您可以省略处理器(因为它是可选的)并将该代码移至项目编写器(而不是使用具有空 write 方法的 NoOp 项目编写器)。