此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Batch 文档 5.2.2! |
ItemReader
虽然是一个简单的概念,但ItemReader
是提供来自许多数据的手段
不同类型的输入。最一般的例子包括:
-
平面文件:平面文件项读取器从平面文件中读取数据行,通常 描述具有由文件中的固定位置或分隔符定义的数据字段的记录 通过某些特殊字符(例如逗号)。
-
XML:XML
ItemReaders
处理 XML 独立于用于解析的技术, 映射和验证对象。输入数据允许验证 XML 文件 针对 XSD 架构。 -
数据库:访问数据库资源以返回可映射到 要处理的对象。默认 SQL
ItemReader
实现调用RowMapper
要返回对象,如果需要重新启动,请跟踪当前行,将 Basic 统计信息,并提供一些稍后将解释的事务增强功能。
还有更多的可能性,但我们在本章中重点介绍基本的可能性。一个
所有可用的完整列表ItemReader
实现可以在附录 A 中找到。
ItemReader
是泛型的基本接口
input作,如以下接口定义所示:
public interface ItemReader<T> {
T read() throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException;
}
这read
方法定义了ItemReader
.称呼它
返回一个项目或null
如果没有更多物品。项目可能表示
文件、数据库中的行或 XML 文件中的元素。一般预计
这些被映射到可用的域对象(例如Trade
,Foo
,或其他),但在那里
合同中没有要求这样做。
预计ItemReader
接口仅转发。
但是,如果底层资源是事务性的(例如 JMS 队列),则调用read
在回滚方案中,可能会在后续调用中返回相同的逻辑项。是的
还值得注意的是,缺乏要处理的项目ItemReader
不会导致
异常。例如,数据库ItemReader
配置了
返回 0 结果的查询返回null
在第一次调用read
.