值得一提的是, 处理过程中如果没有items, ItemReader 不应该抛出异常。...因为一般来说,items 将要被批量写入到一起,然后再输出, 所以 write 方法接受一个List 参数,而不是单个对象(item)。...文件的写入也很类似, 但步骤正好相反:
将要写入的对象传递给 writer
将领域对象的属性域转换为数组
将结果数组合并(aggregate)为一行字符串
因为框架没办法知道需要将领域对象的哪些字段写入到文件中...但是,在写出时如果发生了什么错误,就可能会引起混乱,因为没有办法知道是哪个item引起的异常, 甚至是否某个单独的 item 负有责任,如下图所示:
如果 items 在输出之前有缓冲, 则遇到任何错误将不会立刻抛出...如果list里面没有内容,则将返回null, 从而满足ItemReader 的基本要求, 测试代码如下所示:
List items = new ArrayList(