小编dok*_*dok的帖子

无法获得春季批量条件流工作

我无法使用java配置获得条件弹簧批处理流程.我在春季批次样本,春季批次测试代码或堆栈溢出中看到的样本往往显示条件,其中单个步骤需要在条件上执行,或者它是最后一步,或两者.那不是我需要解决的情况.

在程序伪代码中,我希望它表现得像

initStep()
if decision1()
    subflow1()
middleStep()
if decision2()
    subflow2()
lastStep()
Run Code Online (Sandbox Code Playgroud)

因此,subflow1和2是有条件的,但init,middle和last总是执行.这是我的剥离测试用例.在当前配置中,它只是在执行subflow1后退出.

public class FlowJobTest {

private JobBuilderFactory jobBuilderFactory;
private JobRepository jobRepository;
private JobExecution execution;

@BeforeMethod
public void setUp() throws Exception {
    jobRepository = new MapJobRepositoryFactoryBean().getObject();
    jobBuilderFactory = new JobBuilderFactory(jobRepository);
    execution = jobRepository.createJobExecution("flow", new JobParameters());
}

@Test
public void figureOutFlowJobs() throws Exception {

    JobExecutionDecider subflow1Decider = decider(true);
    JobExecutionDecider subflow2Decider = decider(false);

    Flow subflow1 = new FlowBuilder<Flow>("subflow-1").start(echo("subflow-1-Step-1")).next(echo("subflow-1-Step-2")).end();
    Flow subflow2 = new FlowBuilder<Flow>("subflow-2").start(echo("subflow-2-Step-1")).next(echo("subflow-2-Step-2")).end();

    Job job = jobBuilderFactory.get("testJob")
            .start(echo("init"))

            .next(subflow1Decider)
                .on("YES").to(subflow1)
            .from(subflow1Decider)
                .on("*").to(echo("middle")) …
Run Code Online (Sandbox Code Playgroud)

spring-batch spring-java-config

4
推荐指数
1
解决办法
4080
查看次数

标签 统计

spring-batch ×1

spring-java-config ×1