【问题标题】:How to write custom flat file item reader using xml configuration如何使用 xml 配置编写自定义平面文件项阅读器
【发布时间】:2018-01-13 15:29:13
【问题描述】:

我是春季批次的新手。我正在使用在 xml 文件中配置的平面文件项目阅读器。然后有一个处理器来处理每个创建的 obj。我需要在将文件内容传递给文件项阅读器之前对其进行预处理。处理后的结果/文件不应写入磁盘。我可以知道如何通过xml文件配置来做到这一点。 它是通过 tasklet 还是扩展平面文件项目阅读器?那么处理器应该像以前一样工作而没有变化。在将文件传递给平面文件项目阅读器之前,我需要引入一个层。

【问题讨论】:

  • 预处理是做什么的?并且您希望平面文件阅读器仍然读取原始 xml 文件?

标签: spring spring-batch flatfilereader


【解决方案1】:

您可以为此使用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>

【讨论】:

    猜你喜欢
    • 2015-08-17
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多