Item Reader 和 Writer 实现
在本节中,我们将向您介绍尚未阅读的读者和作家 在前面的部分中讨论过。
装饰
在某些情况下,用户需要将专用行为附加到预先存在的 .Spring Batch 提供了一些开箱即用的装饰器,这些装饰器可以添加
其他行为到您的 和 implementations。ItemReader
ItemReader
ItemWriter
Spring Batch 包括以下装饰器:
SynchronizedItemStreamReader
当使用非线程安全的 that 时, Spring Batch 会提供装饰器,该装饰器可用于使线程安全。Spring Batch 提供了一个 to 构造
的 .ItemReader
SynchronizedItemStreamReader
ItemReader
SynchronizedItemStreamReaderBuilder
SynchronizedItemStreamReader
例如,the 不是线程安全的,不能在
多线程步骤。这个读取器可以用 a 修饰,以便在多线程步骤中安全地使用它。下面是一个如何装饰的示例
这样的读者:FlatFileItemReader
SynchronizedItemStreamReader
@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 提供了一个来构造 .ItemReader
read
SingleItemPeekableItemReaderBuilder
SingleItemPeekableItemReader
SingleItemPeekableItemReader 的 peek 方法不是线程安全的,因为它不会 可以在多个线程中遵循 peek。只有一个线程偷看 将在下一次调用 READ 时获取该项目。 |
SynchronizedItemStreamWriter
当使用非线程安全的 that 时, Spring Batch 会提供装饰器,该装饰器可用于使线程安全。Spring Batch 提供了一个 to 构造
的 .ItemWriter
SynchronizedItemStreamWriter
ItemWriter
SynchronizedItemStreamWriterBuilder
SynchronizedItemStreamWriter
例如,the 不是线程安全的,不能在
多线程步骤。这个编写器可以用 a 修饰,以便在多线程步骤中安全地使用它。下面是一个如何装饰的示例
这样的作家:FlatFileItemWriter
SynchronizedItemStreamWriter
@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 提供了一个
构造 .MultiResourceItemWriter
ResourceAwareItemWriterItemStream
itemCountLimitPerResource
MultiResourceItemWriterBuilder
MultiResourceItemWriter
消息传递 Readers 和 Writers
Spring Batch 为常用的消息传递系统提供了以下读取器和写入器:
AmqpItemReader
这是一个使用 an 来接收或转换
来自 Exchange 的消息。Spring Batch 提供了一个 to 构造
的 .AmqpItemReader
ItemReader
AmqpTemplate
AmqpItemReaderBuilder
AmqpItemReader
AmqpItemWriter
这是一个使用 an 发送消息到
一个 AMQP 交易所。如果
提供的 .Spring Batch 提供了一个
构造 .AmqpItemWriter
ItemWriter
AmqpTemplate
AmqpTemplate
AmqpItemWriterBuilder
AmqpItemWriter
JmsItemReader
这是使用 .模板
应具有 default destination ,该 destination 用于为方法提供项目。Spring Batch 提供了一个来构造 .JmsItemReader
ItemReader
JmsTemplate
read()
JmsItemReaderBuilder
JmsItemReader
JmsItemWriter
这是使用 .模板
应具有默认目标,该目标用于发送 中的项目。Spring
Batch 提供了一个用于构造 .JmsItemWriter
ItemWriter
JmsTemplate
write(List)
JmsItemWriterBuilder
JmsItemWriter
数据库读取器
数据库写入器
Spring Batch 提供以下数据库编写器:
Neo4jItemWriter
这是一个写入 Neo4j 数据库的实现。
Spring Batch 提供了一个来构造 .Neo4jItemWriter
ItemWriter
Neo4jItemWriterBuilder
Neo4jItemWriter
MongoItemWriter
这是一个写入 MongoDB 存储的实现
使用 Spring Data 的 .Spring Batch 提供了一个来构造 .MongoItemWriter
ItemWriter
MongoOperations
MongoItemWriterBuilder
MongoItemWriter
RepositoryItemWriter
这是 Spring 的 a 的包装器
数据。Spring Batch 提供了一个 to 构造
这。RepositoryItemWriter
ItemWriter
CrudRepository
RepositoryItemWriterBuilder
RepositoryItemWriter
专业读者
Spring Batch 提供了以下专用阅读器:
LdifReader
从 中读取 LDIF(LDAP 数据交换格式)记录 ,
解析它们,并为每个执行的 API 返回一个对象。Spring Batch
提供 a 来构造 的实例。LdifReader
Resource
LdapAttribute
read
LdifReaderBuilder
LdifReader