我的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方法中使用它。
但是,我在文件中写入空值。
在调试时,我发现在writeFooter之前调用了afterStep方法。
但是不是吗?只有在footerCallBack结束后才应该完成步骤?