我对Spring Batch中ItemReader中@Beforestep的使用有点困惑。
当我使用
时public class MyItemReader implements ItemReader<String> {
long teller = 0L;
@BeforeStep
public void beforeStep(StepExecution se) {
}
@Override
public String read() throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException {
if(teller == 11)
return null;
return String.valueOf(++teller);
}
}
我得到一个例外:
Caused by: java.lang.IllegalArgumentException: The method [beforeStep] on target class [MyItemReader] is incompatible with the signature [(StepExecution)] expected for the annotation [BeforeStep].
这种情况不会导致异常:
@BeforeStep
public void beforeStep() {
}
但是,文档中描述了第一种情况。
预期结果如何?当我无法将SendExecution对象添加到参数列表中时,如何将SendExecution对象发送到该对象?
我正在使用spring-boot-starter-batch-1.1.6.RELEASE
答案 0 :(得分:0)
解决了它。有2个StepExecution类:org.springframework.batch.core.StepExecution
和javax.batch.runtime.StepExecution
使用第一个,而不是第二个(就像我一样)。