ItemReader 和 ItemWriter 清單

Item Reader

表 1. 可用的 Item Reader
Item Reader 描述 執行緒安全

AbstractItemStreamItemReader

結合 ItemStreamItemReader 介面的抽象基底類別。

AbstractItemCountingItemStreamItemReader

透過計算從 ItemReader 傳回的項目數量來提供基本重新啟動功能的抽象基底類別。

AbstractPagingItemReader

提供基本分頁功能的抽象基底類別

AbstractPaginatedDataItemReader

提供基於 Spring Data 分頁設施的基本分頁功能的抽象基底類別

AggregateItemReader

一個 ItemReader,它將清單作為其項目傳遞,儲存來自注入的 ItemReader 的物件,直到它們準備好作為集合包裝輸出。此類別必須用作可以識別記錄邊界的自訂 ItemReader 的包裝器。自訂讀取器應透過傳回對其查詢方法 (isHeader()isFooter()) 回應 trueAggregateItem 來標記記錄的開始和結束。請注意,此讀取器不是 Spring Batch 提供的讀取器程式庫的一部分,而是在 spring-batch-samples 中作為範例提供。

AmqpItemReader

給定 Spring AmqpTemplate,它提供同步接收方法。receiveAndConvert() 方法讓您可以接收 POJO 物件。

KafkaItemReader

一個 ItemReader,從 Apache Kafka 主題讀取訊息。它可以設定為從同一個主題的多個分割區讀取訊息。此讀取器將訊息偏移量儲存在執行環境中,以支援重新啟動功能。

FlatFileItemReader

從平面檔案讀取。包含 ItemStreamSkippable 功能。請參閱 「FlatFileItemReader」

HibernateCursorItemReader

根據 HQL 查詢從游標讀取。請參閱 基於游標的 ItemReader

HibernatePagingItemReader

從分頁的 HQL 查詢讀取。

ItemReaderAdapter

將任何類別調整為 ItemReader 介面。

JdbcCursorItemReader

透過 JDBC 從資料庫游標讀取。請參閱 「基於游標的 ItemReader」

JdbcPagingItemReader

給定 SQL 陳述式,分頁瀏覽資料列,以便可以讀取大型資料集而不會耗盡記憶體。

JmsItemReader

給定 Spring JmsOperations 物件和 JMS 目的地或目的地名稱以傳送錯誤,提供透過注入的 JmsOperations#receive() 方法接收的項目。

JpaCursorItemReader

執行 JPQL 查詢並迭代傳回的結果集

JpaPagingItemReader

給定 JPQL 查詢,分頁瀏覽資料列,以便可以讀取大型資料集而不會耗盡記憶體。

ListItemReader

一次從清單中提供一個項目。

MongoItemReader

給定 MongoOperations 物件和基於 JSON 的 MongoDB 查詢,提供從 MongoOperations#find() 方法接收的項目。

Neo4jItemReader

給定 Neo4jOperations 物件和 Cyhper 查詢的元件,項目將作為 Neo4jOperations.query 方法的結果傳回。

RepositoryItemReader

給定 Spring Data PagingAndSortingRepository 物件、Sort 和要執行的方法名稱,傳回 Spring Data 儲存庫實作提供的項目。

StoredProcedureItemReader

從資料庫預存程序執行產生的資料庫游標讀取。請參閱 StoredProcedureItemReader

StaxEventItemReader

透過 StAX 讀取。請參閱 StaxEventItemReader

JsonItemReader

從 Json 文件讀取項目。請參閱 JsonItemReader

AvroItemReader

從包含序列化 Avro 物件的資源讀取項目。

LdifReader

從 LDIF 資源讀取項目並將其作為 LdapAttributes 傳回

MappingLdifReader

從 LDIF 資源讀取項目並使用 RecordMapper 將它們對應到領域物件

Item Writer

表 2. 可用的 Item Writer
Item Writer 描述 執行緒安全

AbstractItemStreamItemWriter

結合 ItemStreamItemWriter 介面的抽象基底類別。

AmqpItemWriter

給定 Spring AmqpTemplate,提供同步 send 方法。convertAndSend(Object) 方法讓您可以傳送 POJO 物件。

CompositeItemWriter

將項目傳遞到注入的 ItemWriter 物件 List 中每個項目的 write 方法。

FlatFileItemWriter

寫入平面檔案。包含 ItemStream 和 Skippable 功能。請參閱 「FlatFileItemWriter」

HibernateItemWriter

此項目寫入器具有 Hibernate 會話感知能力,並處理一些非「hibernate 感知」項目寫入器不需要知道的交易相關工作,然後委派給另一個項目寫入器來執行實際寫入。

ItemWriterAdapter

將任何類別調整為 ItemWriter 介面。

JdbcBatchItemWriter

使用 PreparedStatement 的批次處理功能 (如果可用),並且可以採取初步步驟來定位 flush 期間的失敗。

JmsItemWriter

使用 JmsOperations 物件,項目透過 JmsOperations#convertAndSend() 方法寫入預設佇列。

JpaItemWriter

此項目寫入器具有 JPA EntityManager 感知能力,並處理一些非「JPA 感知」ItemWriter 不需要知道的交易相關工作,然後委派給另一個寫入器來執行實際寫入。

KafkaItemWriter

使用 KafkaTemplate 物件,項目透過 KafkaTemplate#sendDefault(Object, Object) 方法寫入預設主題,方法是使用 Converter 從項目對應金鑰。也可以設定刪除旗標以將刪除事件傳送到主題。

MimeMessageItemWriter

使用 Spring 的 JavaMailSender,類型為 MimeMessage 的項目會作為郵件訊息傳送。

MongoItemWriter

給定 MongoOperations 物件,項目會透過 MongoOperations.save(Object) 方法寫入。實際寫入會延遲到交易提交之前的最後可能時刻。

Neo4jItemWriter

給定 Neo4jOperations 物件,項目會透過 save(Object) 方法持久化,或透過 delete(Object) 刪除,如 ItemWriter 的組態所指示

PropertyExtractingDelegatingItemWriter

擴展 AbstractMethodInvokingDelegator 即時建立引數。引數是透過從要處理的項目中的欄位 (透過 SpringBeanWrapper) 檢索值來建立的,基於注入的欄位名稱陣列。

RepositoryItemWriter

給定 Spring Data CrudRepository 實作,項目會透過組態中指定的方法儲存。

StaxEventItemWriter

使用 Marshaller 實作將每個項目轉換為 XML,然後使用 StAX 將其寫入 XML 檔案。

JsonFileItemWriter

使用 JsonObjectMarshaller 實作將每個項目轉換為 Json,然後將其寫入 Json 檔案。

AvroItemWriter

使用 Avro 將資料序列化到 WritableResource

ListItemWriter

將項目寫入 List 的 Item writer。