我在itemreader中发现了beforstep和afterstep注解的问题。我希望有人能给我澄清一下。
工作原理:
我使用以下方法实现了itemreader:
public class ReaderImpl implements ItemReader<String> {
@BeforeStep
public void beforeStep(StepExecution stepExecution) {
//do before step processing...
}
@Override
public String read() {
//do read...
}
@AfterStep
public ExitStatus afterStep(StepExecution stepExecution) {
//do after step processing...
}
}
xml配置:
<step id="step1">
<tasklet>
<chunk reader="readerImpl" writer="writer" commit-interval="100" />
</tasklet>
</step>
<bean id="readerImpl" class="package.to.ReaderImpl" scope="step"/>
上面的上下文工作得很好,beforestep和afterstep方法正在正确执行。
什么不起作用:
当我用另一个bean Package readerimpl时,spring不再执行beforestep和afterstep方法。
例子:
<step id="step1">
<tasklet>
<chunk reader="synchronizedReaderImpl" processor="processor" writer="writer" commit-interval="100" />
</tasklet>
</step>
<bean id="synchronizedReaderImpl" class="org.springframework.batch.item.support.SynchronizedItemStreamReader" scope="step">
<property name="delegate" ref="readerImpl" />
</bean>
暂无答案!
目前还没有任何答案,快来回答吧!