I use spring batch and implemented item writer listener. My Item Writer Listener class is something like this
@Component
public class SomeItemWriterListener implements ItemWriteListener {
@Override
public void beforeWrite(List<Object> items) throws Exception {
System.out.println("get here1");
}
@Override
public void afterWrite(List<Object> items) throws Exception {
System.out.println("get here2");
}
@Override
public void onWriteError(List<Object> items, Exception ex) throws Exception {
System.out.println("get here3");
}
}
Then I configure it in my step like this using Java Config
@Autowired
private SomeItemWriterListener writerListener;
@Bean
public Step step(StepBuilderFactory stepBuilderFactory,
@Qualifier("itemReader")
ItemReader<SomeItem> reader) {
return stepBuilderFactory.get("step").listener(
writerListener).chunk(
chunkSize).reader(reader).processor(processor).writer(writer).build();
}
But, beforeWrite, afterWrite is not called. When I add some error onWriterError also not called. Did I miss something when I configure this?
listener(Object)method which doesn't do anything for your listener. - M. Deinum