项目写入器
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
。