当前位置: 首页 > 知识库问答 >
问题:

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

韩鸿
2023-03-14

问题是:如何使spring批处理中的条目读取器传递列表而不是单个对象。

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

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

共有1个答案

侯英达
2023-03-14

看看itemReader的官方spring批处理文档

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
    }

}
 类似资料:
  • 我正在使用RepositoryItemReader作为阅读器。我需要一起处理该块的整个读取器值列表。 当我试图通过扩展读取器返回列表来执行块处理时,在我的处理器中,我收到错误 类Car不能转换为java.util.list(Car位于加载程序“app”的未命名模块中);java.util.List位于加载程序“bootstrap”的java.base模块中 读者 贮藏室ˌ仓库 处理器 步骤

  • 我试图访问MyModelClass上的getter方法,但我的代码返回

  • 我是Spring批次的新手。我需要在spring批处理中实现的任务如下: 需要从数据库读取一些元数据。 基于此元数据,我需要读取一些文件。 经过一些处理后,需要将这些值从文件写入数据库。 我的查询如下: c.另外,基于某些条件,我可能需要调用第三组阅读器。如何在步骤中有条件地调用读取器? 谢谢你看了我的帖子。我知道它很长。非常感谢任何帮助。另外,我想一个示例代码片段会帮助我更好地理解这一点。:)

  • 我有一个sql select查询,它只从数据库中检索单个列(组)(即),我在对象数组列表中接收上面列表的结果 , 理想情况下,结果应该包含一个对象数组列表,但是当我检查时,结果的第0个索引包含String object而不是object数组。 但是,如果我使用多个列(假设在查询的select子句中有2个列),我可以看到结果的第0个索引作为对象数组,即 即使查询的select子句中只提到一列,如何获

  • 我使用mysql存储过程来检索对象列表。这可能吗? 我在看这篇文章 问题: > 如何使用结果集检索select语句中的对象列表? 如何将结果集映射到对象列表? CREATE DEFINER=@PROCEDURE(ININT,OUTINT,OUTINT,OUTVARCHAR(50),OUTVARCHAR(50),OUTFLOAT 内部连接(从rate中选择aid,r.rate,re.country_