|
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Batch 文档 5.1.2! |
|
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Batch 文档 5.1.2! |
在本节中,我们将向您介绍尚未阅读的读者和作家 在前面的部分中讨论过。
装饰
在某些情况下,用户需要将专用行为附加到预先存在的 .Spring Batch 提供了一些开箱即用的装饰器,这些装饰器可以添加
其他行为到您的 和 implementations。ItemReaderItemReaderItemWriter
Spring Batch 包括以下装饰器:
SynchronizedItemStreamReader
当使用非线程安全的 that 时, Spring Batch 会提供装饰器,该装饰器可用于使线程安全。Spring Batch 提供了一个 to 构造
的 .ItemReaderSynchronizedItemStreamReaderItemReaderSynchronizedItemStreamReaderBuilderSynchronizedItemStreamReader
例如,the 不是线程安全的,不能在
多线程步骤。这个读取器可以用 a 修饰,以便在多线程步骤中安全地使用它。下面是一个如何装饰的示例
这样的读者:FlatFileItemReaderSynchronizedItemStreamReader
@Bean
public SynchronizedItemStreamReader<Person> itemReader() {
FlatFileItemReader<Person> flatFileItemReader = new FlatFileItemReaderBuilder<Person>()
// set reader properties
.build();
return new SynchronizedItemStreamReaderBuilder<Person>()
.delegate(flatFileItemReader)
.build();
}
SingleItemPeekableItemReader
Spring Batch 包含一个装饰器,该装饰器将 peek 方法添加到 .这个 peek
方法允许用户提前速览一个项目。对速览的重复调用将返回相同的结果
item,这是从该方法返回的下一项。Spring Batch 提供了一个来构造 .ItemReaderreadSingleItemPeekableItemReaderBuilderSingleItemPeekableItemReader
| SingleItemPeekableItemReader 的 peek 方法不是线程安全的,因为它不会 可以在多个线程中遵循 peek。只有一个线程偷看 将在下一次调用 READ 时获取该项目。 |
SynchronizedItemStreamWriter
当使用非线程安全的 that 时, Spring Batch 会提供装饰器,该装饰器可用于使线程安全。Spring Batch 提供了一个 to 构造
的 .ItemWriterSynchronizedItemStreamWriterItemWriterSynchronizedItemStreamWriterBuilderSynchronizedItemStreamWriter
例如,the 不是线程安全的,不能在
多线程步骤。这个编写器可以用 a 修饰,以便在多线程步骤中安全地使用它。下面是一个如何装饰的示例
这样的作家:FlatFileItemWriterSynchronizedItemStreamWriter
@Bean
public SynchronizedItemStreamWriter<Person> itemWriter() {
FlatFileItemWriter<Person> flatFileItemWriter = new FlatFileItemWriterBuilder<Person>()
// set writer properties
.build();
return new SynchronizedItemStreamWriterBuilder<Person>()
.delegate(flatFileItemWriter)
.build();
}
MultiResourceItemWriter
将 a 包装并创建一个新的
output 资源(当当前资源中写入的项目计数超过 .Spring Batch 提供了一个
构造 .MultiResourceItemWriterResourceAwareItemWriterItemStreamitemCountLimitPerResourceMultiResourceItemWriterBuilderMultiResourceItemWriter
| SingleItemPeekableItemReader 的 peek 方法不是线程安全的,因为它不会 可以在多个线程中遵循 peek。只有一个线程偷看 将在下一次调用 READ 时获取该项目。 |
消息传递 Readers 和 Writers
Spring Batch 为常用的消息传递系统提供了以下读取器和写入器:
AmqpItemReader
这是一个使用 an 来接收或转换
来自 Exchange 的消息。Spring Batch 提供了一个 to 构造
的 .AmqpItemReaderItemReaderAmqpTemplateAmqpItemReaderBuilderAmqpItemReader
AmqpItemWriter
这是一个使用 an 发送消息到
一个 AMQP 交易所。如果
提供的 .Spring Batch 提供了一个
构造 .AmqpItemWriterItemWriterAmqpTemplateAmqpTemplateAmqpItemWriterBuilderAmqpItemWriter
JmsItemReader
这是使用 .模板
应具有 default destination ,该 destination 用于为方法提供项目。Spring Batch 提供了一个来构造 .JmsItemReaderItemReaderJmsTemplateread()JmsItemReaderBuilderJmsItemReader
JmsItemWriter
这是使用 .模板
应具有默认目标,该目标用于发送 中的项目。Spring
Batch 提供了一个用于构造 .JmsItemWriterItemWriterJmsTemplatewrite(List)JmsItemWriterBuilderJmsItemWriter
数据库读取器
数据库写入器
Spring Batch 提供以下数据库编写器:
Neo4jItemWriter
这是一个写入 Neo4j 数据库的实现。
Spring Batch 提供了一个来构造 .Neo4jItemWriterItemWriterNeo4jItemWriterBuilderNeo4jItemWriter
MongoItemWriter
这是一个写入 MongoDB 存储的实现
使用 Spring Data 的 .Spring Batch 提供了一个来构造 .MongoItemWriterItemWriterMongoOperationsMongoItemWriterBuilderMongoItemWriter
RepositoryItemWriter
这是 Spring 的 a 的包装器
数据。Spring Batch 提供了一个 to 构造
这。RepositoryItemWriterItemWriterCrudRepositoryRepositoryItemWriterBuilderRepositoryItemWriter
专业读者
Spring Batch 提供了以下专用阅读器:
LdifReader
从 中读取 LDIF(LDAP 数据交换格式)记录 ,
解析它们,并为每个执行的 API 返回一个对象。Spring Batch
提供 a 来构造 的实例。LdifReaderResourceLdapAttributereadLdifReaderBuilderLdifReader