问题是:如何在春季批次中创建一个Item阅读器来传递列表而不是单个对象。
我搜索过,一些答案是修改项目阅读器以返回对象列表并更改项目处理器以接受列表作为输入。
如何对项目阅读器进行编码/编码?
答案 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
}
}