类 SynchronizedItemStreamReader<T>
- java.lang.Object
- org.springframework.batch.item.support.SynchronizedItemStreamReader<T>
- 类型参数:
T
- type of object being read
- 所有已实现的接口:
ItemReader<T>
,ItemStream
,ItemStreamReader<T>
,org.springframework.beans.factory.InitializingBean
public class SynchronizedItemStreamReader<T> extends java.lang.Object implements ItemStreamReader<T>, org.springframework.beans.factory.InitializingBean
This is a simple ItemStreamReader decorator with a synchronized ItemReader.read() method - which makes a non-thread-safe ItemReader thread-safe. However, if reprocessing an item is problematic then using this will make a job not restartable. Here are some links about the motivation behind this class: - https://projects.spring.io/spring-batch/faq.html#threading-reader} - https://stackoverflow.com/a/20002493/2910265}- 从以下版本开始:
- 3.0.4
- 作者:
- Matthew Ouyang
构造器概要
构造器 构造器 说明 SynchronizedItemStreamReader()
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 void
afterPropertiesSet()
void
close()
If any resources are needed for the stream to operate they need to be destroyed here.void
open(ExecutionContext executionContext)
Open the stream for the providedExecutionContext
.T
read()
This delegates to the read method of thedelegate
void
setDelegate(ItemStreamReader<T> delegate)
void
update(ExecutionContext executionContext)
Indicates that the execution context provided during open is about to be saved.
构造器详细资料
SynchronizedItemStreamReader
public SynchronizedItemStreamReader()
方法详细资料
setDelegate
public void setDelegate(ItemStreamReader<T> delegate)
read
public T read() throws java.lang.Exception, UnexpectedInputException, ParseException, NonTransientResourceException
This delegates to the read method of thedelegate
- 指定者:
read
在接口中ItemReader<T>
- 返回:
- T the item to be processed or
null
if the data source is exhausted - 抛出:
ParseException
- if there is a problem parsing the current record (but the next one may still be valid)NonTransientResourceException
- if there is a fatal exception in the underlying resource. After throwing this exception implementations should endeavour to return null from subsequent calls to read.UnexpectedInputException
- if there is an uncategorised problem with the input data. Assume potentially transient, so subsequent calls to read might succeed.java.lang.Exception
- if an there is a non-specific error.
close
public void close()
从接口复制的说明:ItemStream
If any resources are needed for the stream to operate they need to be destroyed here. Once this method has been called all other methods (except open) may throw an exception.- 指定者:
close
在接口中ItemStream
open
public void open(ExecutionContext executionContext)
从接口复制的说明:ItemStream
Open the stream for the providedExecutionContext
.- 指定者:
open
在接口中ItemStream
- 参数:
executionContext
- current step'sExecutionContext
. Will be the executionContext from the last run of the step on a restart.
update
public void update(ExecutionContext executionContext)
从接口复制的说明:ItemStream
Indicates that the execution context provided during open is about to be saved. If any state is remaining, but has not been put in the context, it should be added here.- 指定者:
update
在接口中ItemStream
- 参数:
executionContext
- to be updated
afterPropertiesSet
public void afterPropertiesSet() throws java.lang.Exception
- 指定者:
afterPropertiesSet
在接口中org.springframework.beans.factory.InitializingBean
- 抛出:
java.lang.Exception