ItemReader

虽然概念简单,但 an 是提供来自许多 不同类型的输入。最常见的示例包括:ItemReaderspring-doc.cn

  • 平面文件:平面文件项读取器从平面文件中读取数据行,通常 描述其数据字段由文件中的固定位置定义或分隔的记录 通过一些特殊字符(如逗号)。spring-doc.cn

  • XML:独立于用于解析的技术的 XML 处理 XML, 映射和验证对象。输入数据允许验证 XML 文件 针对 XSD 架构。ItemReadersspring-doc.cn

  • Database:访问数据库资源以返回可映射到 对象进行处理。默认的 SQL 实现调用 a 返回对象,如果需要重新启动,则跟踪当前行,存储 basic 统计信息,并提供一些事务增强功能,稍后将对此进行说明。ItemReaderRowMapperspring-doc.cn

还有更多可能性,但本章我们将重点介绍基本的可能性。一个 所有可用实现的完整列表可在附录 A 中找到。ItemReaderspring-doc.cn

ItemReader是泛型 input 操作,如以下接口定义所示:spring-doc.cn

public interface ItemReader<T> {

    T read() throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException;

}

该方法定义了 .调用它 返回一个项目,或者没有更多项目。一个项目可能表示 文件、数据库中的一行或 XML 文件中的元素。通常预期 这些对象被映射到可用的域对象(例如 、 或其他),但是 是合同中没有要求这样做的。readItemReadernullTradeFoospring-doc.cn

预计接口的实现仅向前。 但是,如果底层资源是事务性的(例如 JMS 队列),则在回滚场景中,调用可能会在后续调用中返回相同的逻辑项。是的 另外值得注意的是,缺少要由 an 处理的项目不会导致 异常。例如,配置了 返回 0 个结果的查询在第一次调用 .ItemReaderreadItemReaderItemReadernullreadspring-doc.cn