我试图通过在我的自定义编写器调用中实现头部回调和footercallback来在自定义编写器中添加页眉和页脚。
写入方法成功。但是不会调用write header和writefooter。
public class CustomOAFileItemWriter extends StepExecutionListenerSupport implements ItemWriter<OAExtract>,FlatFileHeaderCallback,FlatFileFooterCallback{
public void write(List<? extends OAExtract> oaExtractList) throws Exception {
FileOutputStream fs = new FileOutputStream("C:\\archivedFiles\\out.bin");
}
public void writeHeader(Writer writer) throws IOException {
System.out.println("Writing Header record");
}
public void writeFooter(Writer writer) throws IOException {
System.out.println("Writing Footerrecord");
}
拥有Spring批量经验的人可以帮助我吗?
谢谢, RAI
答案 0 :(得分:0)
您的解决方案与SB理念相反:重用和委派。你没有使用它们。
您不需要自定义ItemWriter
,但
StepExecutionListenerSupport
)并附加到您的步骤。答案 1 :(得分:0)
如果查看FlatFileItemWriter的源代码,您将看到它在doOpen()处调用头调用方法,在doClose()处调用footer callback方法。由于您没有使用标准的FlatFileItemWriter,因此您将在FlatFileItemWriter中编写显式代码。