Spring Batch配置文件中的SpEL

时间:2014-04-15 14:52:48

标签: spring spring-batch

我正在查看的上下文文件有一个bean定义。在定义中,使用以下行设置其中一个参数。

<property name="processLimit" value="#{jobParameters['MAX.FILES.TO.PROCESS']}" />

我知道这意味着&#39; MAX.FILES.TO.PROCESS&#39;在jobParameters中的某处分配了一个值。

我不知道在哪里可以找到jobParameters文件来检查它,看看它的价值是什么。

1 个答案:

答案 0 :(得分:1)

  

我不确定在哪里可以找到jobParameters文件来检查它并查看它的值是什么?

启动/启动作业时,您可以指定作业所需的一些作业参数,并自动选择弹簧批量配置。您不需要任何jobParameters文件。

请查看 JobParametersBuilder 的不同方法,以创建所需类型的作业参数。


示例代码:

public static void main(String[] args) throws BeansException,
        JobExecutionAlreadyRunningException, JobRestartException,
        JobInstanceAlreadyCompleteException, JobParametersInvalidException, BindException {
    ApplicationContext appContext = new ClassPathXmlApplicationContext(
            "config/application-context.xml");
    JobLauncher jobLauncher = (JobLauncher) appContext.getBean("jobLauncher");
    jobLauncher.run((Job) appContext.getBean("job_name"),
            new JobParametersBuilder().addLong("MAX.FILES.TO.PROCESS", 10L)
                    .toJobParameters());

}

OR

JUnit测试样本

import static org.junit.Assert.assertEquals;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.batch.core.BatchStatus;
import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.JobParametersBuilder;
import org.springframework.batch.test.JobLauncherTestUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:config/application-context.xml",
        "classpath:config/jobs.xml" })
public class AppTest {

    @Autowired
    private JobLauncherTestUtils jobLauncherTestUtils;

    @Test
    public void launchJob() throws Exception {

        JobParametersBuilder jobParametersBuilder = new JobParametersBuilder();
        JobParameters jobParameters = jobParametersBuilder.addLong("MAX.FILES.TO.PROCESS", 10L)
                .toJobParameters();

        // testing a job
        JobExecution jobExecution = jobLauncherTestUtils.launchJob(jobParameters);

        assertEquals(BatchStatus.COMPLETED, jobExecution.getStatus());

    }
}