3

我的 spring 批处理编写器实现了页脚回调和步骤执行侦听器,如下所示:

public class MyItemWriter implements ItemWriter<MyBean>, FlatFileFooterCallback, StepExecutionListener, ItemStream

该类具有私有 String 属性。

private String one;

我的 footerCallback 和 afterStep 方法如下:

public void writeFooter(Writer writer) throws IOException {
this.one = "this is a test";
}

public ExitStatus afterStep(StepExecution stepExecution) {
File file = new File("myFile");
try {
      FileUtils.write(file, this.one);          
 } catch (IOException e) {
      e.printStackTrace();
   } 
  return null;
}

很明显,我在 footerCallBack 中设置属性字符串一,然后在 afterStep 方法中使用它。

但是,我在文件中写入了空值。

在调试时,我发现 afterStep 方法在 writeFooter 之前被调用。

但这不是错的吗?只有在 footerCallBack 结束后才应该完成步骤?

4

0 回答 0