# Appendix A: List of ItemReaders and ItemWriters
# Item Readers
Item Reader | Description |
---|---|
AbstractItemCountingItemStreamItemReader | Abstract base class that provides basic restart capabilities by counting the number of items returned from an ItemReader . |
AggregateItemReader | An ItemReader that delivers a list as itsitem, storing up objects from the injected ItemReader until theyare ready to be packed out as a collection. This class must be used as a wrapper for a custom ItemReader that can identify the recordboundaries. The custom reader should mark the beginning and end of records by returning an AggregateItem which responds true to itsquery methods isHeader() and isFooter() . Note that this readeris not part of the library of readers provided by Spring Batch but given as a sample in spring-batch-samples . |
AmqpItemReader | Given a Spring AmqpTemplate , it providessynchronous receive methods. The receiveAndConvert() methodlets you receive POJO objects. |
KafkaItemReader | An ItemReader that reads messages from an Apache Kafka topic.It can be configured to read messages from multiple partitions of the same topic. This reader stores message offsets in the execution context to support restart capabilities. |
FlatFileItemReader | Reads from a flat file. Includes ItemStream and Skippable functionality. See FlatFileItemReader . |
HibernateCursorItemReader | Reads from a cursor based on an HQL query. SeeCursor-based ItemReaders . |
HibernatePagingItemReader | Reads from a paginated HQL query |
ItemReaderAdapter | Adapts any class to theItemReader interface. |
JdbcCursorItemReader | Reads from a database cursor via JDBC. SeeCursor-based ItemReaders . |
JdbcPagingItemReader | Given an SQL statement, pages through the rows, such that large datasets can be read without running out of memory. |
JmsItemReader | Given a Spring JmsOperations object and a JMSDestination or destination name to which to send errors, provides items received through the injected JmsOperations#receive() method. |
JpaPagingItemReader | Given a JPQL statement, pages through the rows, such that large datasets can be read without running out of memory. |
ListItemReader | Provides the items from a list, one at a time. |
MongoItemReader | Given a MongoOperations object and a JSON-based MongoDBquery, provides items received from the MongoOperations#find() method. |
Neo4jItemReader | Given a Neo4jOperations object and the components of aCyhper query, items are returned as the result of the Neo4jOperations.query method. |
RepositoryItemReader | Given a Spring Data PagingAndSortingRepository object,a Sort , and the name of method to execute, returns items provided by theSpring Data repository implementation. |
StoredProcedureItemReader | Reads from a database cursor resulting from the execution of a database stored procedure. See StoredProcedureItemReader |
StaxEventItemReader | Reads via StAX. see StaxEventItemReader . |
JsonItemReader | Reads items from a Json document. see JsonItemReader . |
# Item Writers
Item Writer | Description |
---|---|
AbstractItemStreamItemWriter | Abstract base class that combines theItemStream andItemWriter interfaces. |
AmqpItemWriter | Given a Spring AmqpTemplate , it providesfor a synchronous send method. The convertAndSend(Object) method lets you send POJO objects. |
CompositeItemWriter | Passes an item to the write method of eachin an injected List of ItemWriter objects. |
FlatFileItemWriter | Writes to a flat file. Includes ItemStream andSkippable functionality. See FlatFileItemWriter . |
GemfireItemWriter | Using a GemfireOperations object, items are either writtenor removed from the Gemfire instance based on the configuration of the delete flag. |
HibernateItemWriter | This item writer is Hibernate-session aware and handles some transaction-related work that a non-"hibernate-aware" item writer would not need to know about and then delegates to another item writer to do the actual writing. |
ItemWriterAdapter | Adapts any class to theItemWriter interface. |
JdbcBatchItemWriter | Uses batching features from aPreparedStatement , if available, and cantake rudimentary steps to locate a failure during a flush . |
JmsItemWriter | Using a JmsOperations object, items are writtento the default queue through the JmsOperations#convertAndSend() method. |
JpaItemWriter | This item writer is JPA EntityManager-aware and handles some transaction-related work that a non-"JPA-aware" ItemWriter would not need to know about andthen delegates to another writer to do the actual writing. |
KafkaItemWriter | Using a KafkaTemplate object, items are written to the default topic through theKafkaTemplate#sendDefault(Object, Object) method using a Converter to map the key from the item.A delete flag can also be configured to send delete events to the topic. |
MimeMessageItemWriter | Using Spring’s JavaMailSender , items of type MimeMessage are sent as mail messages. |
MongoItemWriter | Given a MongoOperations object, items are writtenthrough the MongoOperations.save(Object) method. The actual write is delayeduntil the last possible moment before the transaction commits. |
Neo4jItemWriter | Given a Neo4jOperations object, items are persisted through thesave(Object) method or deleted through the delete(Object) per theItemWriter’s configuration |
PropertyExtractingDelegatingItemWriter | Extends AbstractMethodInvokingDelegator creating arguments on the fly. Arguments are created by retrievingthe values from the fields in the item to be processed (through a SpringBeanWrapper ), based on an injected array of fieldnames. |
RepositoryItemWriter | Given a Spring Data CrudRepository implementation,items are saved through the method specified in the configuration. |
StaxEventItemWriter | Uses a Marshaller implementation toconvert each item to XML and then writes it to an XML file using StAX. |
JsonFileItemWriter | Uses a JsonObjectMarshaller implementation toconvert each item to Json and then writes it to an Json file. |