如何从 UI 发送 spring 批量块大小

How to send spring batch chunk size from UI

有人可以帮助理解如何从 spring 控制器将块大小 1 或 10 作为变量提供给步骤。 这是否适用于此处的步骤范围?或者必须写在@beforeStep?

@豆子

public Step step1() {
    return stepBuilderFactory.get("step1")
            .<Person, Person> chunk(**10**)
            .reader(reader(null))
            .processor(processor())
            .writer(writer())
            .build();
}

您尝试的方法行不通。为了将值作为作业参数传入,它所设置的对象需要在步骤范围内,而步骤本身不能在步骤范围内。您可以做的是创建一个范围为 CompletionPolicy 的步骤,使用它来确定块是否完整。简而言之,将 Spring Batch CountingCompletionPolicy 配置为步骤作用域 bean 并使用它配置步骤应该允许您通过作业参数设置最大计数。

您可以在此处阅读有关 CompletionPolicy 及其相关实现的更多信息:http://docs.spring.io/spring-batch/apidocs/org/springframework/batch/repeat/CompletionPolicy.html