小编sau*_*urb的帖子

在没有Spring Boot的上下文创建后防止Spring Batch自动作业触发

我正在使用Spring Batch设置项目而不使用Spring Boot。创建Spring应用程序上下文后,所有作业都将执行。

我尝试添加spring.batch.job.enbled=falseapplication.properties以防止这种情况,但仍然无法正常工作。

还有其他方法可以阻止Spring在启动时执行作业吗?

主类:

package com.project.batch;
import ...    

@Configuration
@EnableBatchProcessing
@PropertySource("classpath:application.properties")
public class App {
    public static void main(String [] args) throws JobParametersInvalidException, JobExecutionAlreadyRunningException, JobRestartException, JobInstanceAlreadyCompleteException {
        System.out.println("starting main");

        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
        context.scan("com.project.batch");
        context.refresh();

        //JobParameters jobParameters = new JobParametersBuilder().toJobParameters();
        //JobLauncher jobLauncher = context.getBean(JobLauncher.class);
        //JobExecution execution = jobLauncher.run(context.getBean("loaderJob",Job.class),jobParameters);
        System.out.println("finished!!");
    }
}
Run Code Online (Sandbox Code Playgroud)

职位类别:

package com.project.batch;
import ... 

@Configuration
public class LoaderJobConfig {
    @Autowired
    private JobBuilderFactory jobBuilderFactory;

    @Autowired
    JdbcTemplate jdbcTemplate;

    @Autowired …
Run Code Online (Sandbox Code Playgroud)

spring spring-annotations spring-batch spring-boot spring-config

3
推荐指数
1
解决办法
2755
查看次数