我是春季批次的新手。我正在使用在 xml 文件中配置的平面文件项目阅读器。然后有一个处理器来处理每个创建的 obj。我需要在将文件内容传递给文件项阅读器之前对其进行预处理。处理后的结果/文件不应写入磁盘。我可以知道如何通过xml文件配置来做到这一点。它是通过 tasklet 还是扩展平面文件项目阅读器?那么处理器应该像以前一样工作而没有变化。在将文件传递给平面文件项目阅读器之前,我需要引入一个层。
问问题
894 次
1 回答
0
你可以用ItemReadListener
这个。ItemReadListener 有三个回调方法。
beforeRead , afterRead and onReadError.
你可以,但你的逻辑在beforeRead
.
示例代码CustomItemReaderListener
public class CustomItemReaderListener implements ItemReadListener<Domain> {
@Override
public void beforeRead() {
System.out.println("ItemReadListener - beforeRead");
//I need to pre process contents of file before passing it to file item reader
// add this logic here
}
@Override
public void afterRead(Domain item) {
System.out.println("ItemReadListener - afterRead");
}
@Override
public void onReadError(Exception ex) {
System.out.println("ItemReadListener - onReadError");
}
}
将侦听器映射到 XML 中的 Step :
<step id="step1">
<tasklet>
<chunk reader="myReader" writer="flatFileItemWriter"
commit-interval="1" />
<listeners>
<listener ref="customItemReaderListener" />
</listeners>
</tasklet>
</step>
于 2018-01-14T01:07:56.133 回答