Xml Spring批处理作业像其他一样执行

时间:2018-11-30 06:00:49

标签: xml spring spring-batch java-batch

我做了春季批处理工作,但是我呆在某个地方。我正在尝试在春季批处理XML作业中从用户那里获取参数,基于该参数,我将运行不同的步骤。

例如参数=新建或替换 根据“参数”,将执行不同的步骤 如果arguments = new,则执行步骤1 否则,如果argument = replace,则执行步骤2 其他错误

高度赞赏您身边的任何领导或帮助。

1 个答案:

答案 0 :(得分:0)

您可以基于系统属性创建决策程序,以决定要使用哪个步骤,例如:

class MyDecider implements JobExecutionDecider {

    @Override
    public FlowExecutionStatus decide(JobExecution jobExecution, StepExecution stepExecution) {
        String operation = System.getProperty("operation");
        if (operation.equalsIgnoreCase("create"))
            return new FlowExecutionStatus("create");
        else {
            return new FlowExecutionStatus("update");
        }
    }
}

然后在您的工作定义中使用此决策程序:

<beans:bean id="decider" class="MyDecider"/>

<job id="job">
    <step id="step1" next="decision" />

    <decision id="decision" decider="decider">
        <next on="create" to="createStep" />
        <next on="update" to="updateStep" />
    </decision>

    <step id="createStep"/>
    <step id="updateStep"/>
</job>