java - 如何在 Item Reader 的 Spring Batch 中获取文件中的行数

标签 java spring spring-batch

我是 Spring 的新手。我有一个工作,它读取文件并写入数据库。如果文件中的记录数超过 8000,我不应该处理该文件并且应该停止作业执行。请建议执行此操作的更好方法。

最佳答案

您可以在 itemreader 中实现 StepExecutionListener。然后您可以获得与您的行号相对应的 readcount。

 public class ExampleItemReader implements ItemReader<String>, StepExecutionListener {

    public synchronized String read() throws Exception {
        return "";
    }

    @Override
    public ExitStatus afterStep(StepExecution executionContext) {
        if (executionContext.getReadCount() > 8000) {
            return ExitStatus.COMPLETED;
        }
        return ExitStatus.EXECUTING;
    }

    @Override
    public void beforeStep(StepExecution arg0) {

    }

}

建议阅读spring batch patterns

关于java - 如何在 Item Reader 的 Spring Batch 中获取文件中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21291061/

相关文章:

java - Spring Fox Swagger UI 掩码密码

Spring Security Oauth2 : Extended UserDetails not returned by the Principal object

java - 在 Spring 中使用 Web Sockets 创建 Activity 提要

java - spring batch 根据批处理 id 记录到不同的日志文件?

Java多线程向数据库插入百万条记录

java - 可以将 Map<Integer, ArrayList<String>> 中的值与 ArrayList<String> 进行比较

java - Tango 图像格式 YCRCB_420_SP

Spring Batch从数据库读取一次,写入另一个数据库并写入CSV

java - 将本地数据与 Firebase 数据库合并并在 recyclerview 中显示

java - 使用 Apache Shiro 的 CSRF token