📅  最后修改于: 2020-11-11 06:50:10             🧑  作者: Mango
项目读取器从特定来源将数据读取到Spring Batch应用程序中,而项目写入器将数据从Spring Batch应用程序写入特定目标中。
物料处理器是一个类,其中包含处理代码,用于处理读入弹簧批处理的数据。如果应用程序读取了n条记录,则将在每条记录上执行处理器中的代码。
块是Tasklet的子元素。它用于执行读取,写入和处理操作。我们可以在如下所示的步骤中使用此元素配置读取器,写入器和处理器。
Spring Batch为读写器提供了从各种文件系统/数据库读取和写入数据的能力,例如MongoDB,Neo4j,MySQL,XML,flatfile,CSV等。
为了在应用程序中包含阅读器,您需要为该阅读器定义一个bean,为bean中所有必需的属性提供值,并将该bean的id作为值传递给块元素阅读器的属性(与作家)。
它是读取数据的(批处理过程)步骤的实体。 ItemReader一次读取一个项目。 Spring Batch提供了一个Interface ItemReader 。所有读者都实现此接口。
以下是Spring Batch提供的一些预定义的ItemReader类,可以从各种来源读取它们。
Reader | Purpose |
---|---|
FlatFIleItemReader | To read data from flat files. |
StaxEventItemReader | To read data from XML files. |
StoredProcedureItemReader | To read data from the stored procedures of a database. |
JDBCPagingItemReader | To read data from relational databases database. |
MongoItemReader | To read data from MongoDB. |
Neo4jItemReader | To read data from Neo4jItemReader. |
我们需要通过创建bean来配置ItemReaders 。以下是StaxEventItemReader的示例,该示例从XML文件读取数据。
Tutorial
正如观察到的那样,在配置时,我们需要指定所需阅读器的相应类名,并且需要为所有必需属性提供值。
这是批处理过程中写入数据的步骤的元素。 ItemWriter一次写入一个项目。 Spring Batch提供了一个Interface ItemWriter 。所有作者都实现此接口。
以下是Spring Batch提供的一些预定义的ItemWriter类,可以从各种来源读取它们。
Writer | Purpose |
---|---|
FlatFIleItemWriter | To write data into flat files. |
StaxEventItemWriter | To write data into XML files. |
StoredProcedureItemWriter | To write data into the stored procedures of a database. |
JDBCPagingItemWriter | To write data into relational databases database. |
MongoItemWriter | To write data into MongoDB. |
Neo4jItemWriter | To write data into Neo4j. |
同样,我们需要通过创建bean来配置ItemWriters。以下是JdbcCursorItemReader的示例,该示例将数据写入MySQL数据库。
ItemProcessor :一个ItemProcessor用于处理数据。当给定项目无效时,它返回null ,否则它将处理给定项目并返回处理后的结果。接口ItemProcessor 表示处理器。
微进程类-当没有读取器和写入器给出,一个微进程充当SpringBatch的处理器。它仅处理单个任务。
我们可以通过实现org.springframework.batch.item.ItemProcessor包的接口ItemProcessor来定义自定义项目处理器。这个ItemProcessor类接受一个对象并处理数据,并将处理后的数据作为另一个对象返回。
在批处理中,如果读取了“ n”条记录或数据元素,则对于每条记录,它将读取数据,对其进行处理并将数据写入写入器。为了处理数据,它在传递的处理器上进行中继。
例如,假设您已经编写了用于加载特定PDF文档,创建新页面,将数据项以表格格式写到PDF的代码。如果执行此应用程序,它将从XML文档中读取所有数据项,将它们存储在MySQL数据库中,并在给定的PDF文档中将它们打印在单独的页面中。
以下是一个示例ItemProcessor类。
import org.springframework.batch.item.ItemProcessor;
public class CustomItemProcessor implements ItemProcessor {
@Override
public Tutorial process(Tutorial item) throws Exception {
System.out.println("Processing..." + item);
return item;
}
}