ItemWriter
`ItemWriter` 的功能与 `ItemReader` 类似,但操作相反。资源仍然需要定位、打开和关闭,但它们的不同之处在于 `ItemWriter` 是写入而不是读入。对于数据库或队列,这些操作可能是插入、更新或发送。输出的序列化格式特定于每个批处理作业。
与 `ItemReader` 一样,`ItemWriter` 是一个相当通用的接口,如下面的接口定义所示
public interface ItemWriter<T> {
void write(Chunk<? extends T> items) throws Exception;
}
与 `ItemReader` 上的 `read` 一样,`write` 提供了 `ItemWriter` 的基本契约。只要它处于打开状态,它就会尝试写入传入的 Item 列表。因为通常预期 Items 会被“批处理”(batched)到一块(chunk)中然后输出,所以接口接受一个 Item 列表,而不是单个 Item。写入列表后,在从 `write` 方法返回之前,可以执行任何必要的刷新操作(flushing)。例如,如果写入到 Hibernate DAO,可以为每个 Item 进行多次 `write` 调用。然后写入器可以在返回之前对 hibernate session 调用 `flush`。