|
对于最新稳定版本,请使用 Spring Batch 文档 6.0.3! |
ItemWriter
ItemWriter 在功能上类似于 ItemReader,但执行的是相反的操作。
资源仍然需要被定位、打开和关闭,但不同之处在于,
ItemWriter 是向外写入数据,而不是读取数据。对于数据库或队列而言,
这些操作可能是插入、更新或发送。输出序列化的格式取决于具体的批处理作业。
与 ItemReader 一样,
ItemWriter 是一个相当通用的接口,如下面的接口定义所示:
public interface ItemWriter<T> {
void write(Chunk<? extends T> items) throws Exception;
}
与 read 在 ItemReader 上的作用类似,write 提供了 ItemWriter 的基本契约。只要写入器处于打开状态,它就会尝试写出传入的项目列表。由于通常预期会将项目“批量”组合成一个块然后再输出,因此该接口接受一个项目列表,而不是单个项目。在写出列表后,可以在从 write 方法返回之前执行任何必要的刷新操作。例如,如果写入到 Hibernate DAO,可以进行多次 write 调用,每个项目调用一次。然后,写入器可以在返回之前对 Hibernate 会话调用 flush。