ItemReader 和 ItemWriter 列表

ItemReader

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

AbstractItemStreamItemReader

結合了 `ItemStream` 和 `ItemReader` 介面的抽象基類。

AbstractItemCountingItemStreamItemReader

透過計數 `ItemReader` 返回的資料項數量來提供基本重啟功能的抽象基類。

AbstractPagingItemReader

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

AbstractPaginatedDataItemReader

基於 Spring Data 分頁功能提供基本分頁特性的抽象基類

AggregateItemReader

一個以列表作為資料項的 `ItemReader`,它儲存來自注入的 `ItemReader` 的物件,直到它們準備好被打包成集合。此類必須用作能夠識別記錄邊界的自定義 `ItemReader` 的包裝器。自定義 Reader 應透過返回對其查詢方法(`isHeader()` 和 `isFooter()`)響應 `true` 的 `AggregateItem` 來標記記錄的開始和結束。請注意,此 Reader 不屬於 Spring Batch 提供的 Reader 庫,而是作為 `spring-batch-samples` 中的一個示例提供。

AmqpItemReader

給定一個 Spring `AmqpTemplate`,它提供同步接收方法。`receiveAndConvert()` 方法允許您接收 POJO 物件。

KafkaItemReader

一個從 Apache Kafka topic 中讀取訊息的 `ItemReader`。它可以配置為從同一 topic 的多個分割槽讀取訊息。此 Reader 在執行上下文中儲存訊息偏移量以支援重啟功能。

FlatFileItemReader

從平面檔案讀取。包括 `ItemStream` 和 `Skippable` 功能。參見 “FlatFileItemReader”

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` 物件和一個 Cypher 查詢的組成部分,資料項作為 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` 將它們對映到領域物件

ItemWriter

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

AbstractItemStreamItemWriter

結合了 `ItemStream` 和 `ItemWriter` 介面的抽象基類。

AmqpItemWriter

給定一個 Spring `AmqpTemplate`,提供一個同步 `send` 方法。`convertAndSend(Object)` 方法允許您傳送 POJO 物件。

CompositeItemWriter

將資料項傳遞給注入的 `ItemWriter` 物件 `List` 中每個項的 `write` 方法。

FlatFileItemWriter

寫入平面檔案。包括 `ItemStream` 和 Skippable 功能。參見 “FlatFileItemWriter”

ItemWriterAdapter

將任何類適配到 `ItemWriter` 介面。

JdbcBatchItemWriter

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

JmsItemWriter

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

JpaItemWriter

此 ItemWriter 具有 JPA `EntityManager` 意識,並處理一些非“JPA 意識”的 `ItemWriter` 無需瞭解的與事務相關的工作,然後委託給另一個 writer 進行實際寫入。

KafkaItemWriter

使用 `KafkaTemplate` 物件,透過 `KafkaTemplate#sendDefault(Object, Object)` 方法將資料項寫入預設 topic,使用 `Converter` 將 key 從資料項中映射出來。還可以配置刪除標誌以向 topic 傳送刪除事件。

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