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,可以進行多次寫入呼叫,每個專案一次。然後 writer 可以在返回之前呼叫 Hibernate 會話上的 flush。