使项目阅读器返回列表而不是单个对象 - Spring批处理

时间:2012-08-13 07:12:01

标签: spring-batch

问题是:如何在春季批次中创建一个Item阅读器来传递列表而不是单个对象。

我搜索过,一些答案是修改项目阅读器以返回对象列表并更改项目处理器以接受列表作为输入。

如何对项目阅读器进行编码/编码?

1 个答案:

答案 0 :(得分:4)

查看official spring batch documentation for itemReader

public interface ItemReader<T> {

    T read() throws Exception, UnexpectedInputException, ParseException;

}
// so it is as easy as
public class ReturnsListReader implements ItemReader<List<?>> {
   public List<?> read() throws Exception {
      // ... reader logic
   }
}

处理器的工作方式相同

public class FooProcessor implements ItemProcessor<List<?>, List<?>> {

    @Override
    public List<?> process(List<?> item) throws Exception {
        // ... logic
    }

}

而不是返回列表,处理器可以返回任何内容,例如一个字符串

public class FooProcessor implements ItemProcessor<List<?>, String> {

    @Override
    public String process(List<?> item) throws Exception {
        // ... logic
    }

}