ItemWriter

ItemWriter 的功能与ItemReader类似,但操作相反。仍然需要定位、打开和关闭资源,但不同之处在于ItemWriter进行写入而不是读取。对于数据库或队列,这些操作可能是插入、更新或发送。输出序列化的格式对于每个批处理作业都是特定的。

ItemReader一样,ItemWriter也是一个相当通用的接口,如下面的接口定义所示。

public interface ItemWriter<T> {

    void write(Chunk<? extends T> items) throws Exception;

}

ItemReader中的read方法一样,write方法提供了ItemWriter的基本契约。只要它处于打开状态,它就会尝试写入作为参数传入的项目列表。由于通常期望将项目“批量”组合成一个块然后输出,因此该接口接受一个项目列表,而不是单个项目。写入列表后,可以在从write方法返回之前执行任何必要的刷新操作。例如,如果写入Hibernate DAO,则可以为每个项目进行多次写入调用。然后,写入器可以在返回之前调用hibernate会话上的flush方法。