我正在查看的上下文文件有一个bean定义。在定义中,使用以下行设置其中一个参数。
<property name="processLimit" value="#{jobParameters['MAX.FILES.TO.PROCESS']}" />
我知道这意味着&#39; MAX.FILES.TO.PROCESS&#39;在jobParameters中的某处分配了一个值。
我不知道在哪里可以找到jobParameters文件来检查它,看看它的价值是什么。
答案 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());
}
}