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,可以多次調用 write,每個項目調用一次。然後,writer 可以在返回之前在 hibernate 會話上調用 flush
。