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
方法。