Package org.springframework.batch.core

# Interface ItemWriteListener<S>

All Superinterfaces:
  `StepListener`

All Known Implementing Classes:
  `CompositeItemWriteListener`, `DefaultItemFailureHandler`, `ItemListenerSupport`, `MulticasterBatchListener`, `StepListenerSupport`

public interface ItemWriteListener<S> extends StepListener

Listener interface for the writing of items. Implementations of this interface will be notified before, after, and in case of any exception thrown while writing a list of items.

Note: This listener is designed to work around the lifecycle of an item. This means that each method should be called once within the lifecycle of an item and in fault tolerant scenarios, any transactional work that is done in one of these methods would be rolled back and not re-applied. Because of this, it is recommended to not perform any logic using this listener that participates in a transaction.

Author:
  Lucas Ward, Mahmoud Ben Hassine

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default void`
  `afterWrite(List<? extends S> items)`
  Called after `ItemWriter.write(java.util.List)` This will be called before any transaction is committed, and before `ChunkListener.afterChunk(ChunkContext)`
  `default void`
  `beforeWrite(List<? extends S> items)`
  Called before `ItemWriter.write(java.util.List)`
  `default void`
  `onWriteError(Exception exception, List<? extends S> items)`
  Called if an error occurs while trying to write.

- ## Method Details

  - ### beforeWrite

    default void beforeWrite(List<? extends S> items)
    Called before `ItemWriter.write(java.util.List)`
    Parameters:
      `items` - to be written

  - ### afterWrite

    default void afterWrite(List<? extends S> items)
    Called after `ItemWriter.write(java.util.List)` This will be called before any transaction is committed, and before `ChunkListener.afterChunk(ChunkContext)`
    Parameters:
      `items` - written items

  - ### onWriteError

    default void onWriteError(Exception exception, List<? extends S> items)
    Called if an error occurs while trying to write. Will be called inside a transaction, but the transaction will normally be rolled back. There is no way to identify from this callback which of the items (if any) caused the error.
    Parameters:
      `exception` - thrown from `ItemWriter`
      `items` - attempted to be written.