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`。