Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring batch 命令行运行程序和作业启动器_Spring Batch - Fatal编程技术网

Spring batch 命令行运行程序和作业启动器

Spring batch 命令行运行程序和作业启动器,spring-batch,Spring Batch,当我试图通过CommandLineRunner运行我的作业时,我得到以下错误:必须提供JobLauncher。请在配置中添加一个 我的Spring批处理配置类: @Configuration @EnableBatchProcessing public class SpringBatchConfiguration implements BatchConfigurer{ @Autowired private DataSource dataSource; @Auto

当我试图通过CommandLineRunner运行我的作业时,我得到以下错误:必须提供JobLauncher。请在配置中添加一个

我的Spring批处理配置类:

@Configuration
@EnableBatchProcessing
public class SpringBatchConfiguration implements BatchConfigurer{

    @Autowired
    private DataSource dataSource;
    
    @Autowired
    private JobBuilderFactory jobBuilders;
    
    
    @Autowired
    private StepBuilderFactory stepBuilders;
    
    
    @Autowired
    AdminAPIClient client;
    
    @Autowired
    AdditionalConfiguration additionalConfiguration;
    
    @Autowired
    EmailSender emailSender;
    
    
    @Autowired
    JobLauncher launcher;
    
    
    public SpringBatchConfiguration() {}
    
    private AdditionalConfiguration config;
    
    public SpringBatchConfiguration(AdditionalConfiguration configuration) {
        this.config = configuration;
    }
    

    
    
    
    @Override
    public JobRepository getJobRepository() throws Exception {
        JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean();
        factory.setDataSource(dataSource);
        factory.setTransactionManager(getTransactionManager());
        factory.setIsolationLevelForCreate(this.getConfiguration().getIsolationLevelForCreate());
        factory.setTablePrefix(this.getConfiguration().getSpringBatchTablePrefix());
        factory.setMaxVarCharLength(1200);
        return factory.getObject();
    }

    @Override
    public PlatformTransactionManager getTransactionManager() throws Exception {
        return new DataSourceTransactionManager(dataSource);
    }


    @Override
    public JobLauncher getJobLauncher() throws Exception {
        SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
        jobLauncher.setJobRepository(getJobRepository());
        jobLauncher.afterPropertiesSet();
        this.launcher = jobLauncher;
        return jobLauncher;
    }


    @Override
    public JobExplorer getJobExplorer() throws Exception {
        JobExplorerFactoryBean factoryBean = new JobExplorerFactoryBean();
        factoryBean.setDataSource(this.dataSource);
        factoryBean.afterPropertiesSet();
        return factoryBean.getObject();
    }

    public AdditionalConfiguration getConfiguration() {
        return config;
    }

    public void setConfiguration(AdditionalConfiguration configuration) {
        this.config= configuration;
    }
    
    

    
    @Bean("dateRollForwardJob")
    public Job dateRollForwardJob() {
        return jobBuilders.get("someJob")
                //.preventRestart()
                .incrementer(new RunIdIncrementer())
                .start(rollForwardStep())
                .listener(new DateRollForwardJobListener(emailSender))
                .build();
    }

    @Bean
    public Step rollForwardStep() {
        return stepBuilders.get(StatementJobs.DATE_ROLLFORWARD_TASK.name())
                .tasklet(dateRollForwardTasklet(client, additionalConfiguration))
                .build();
    }
    
    @Bean
    public Tasklet dateRollForwardTasklet(AdminAPIClient client, AdditionalConfiguration configuration) {
        return new DateRollForwardTasklet(client, additionalConfiguration);
    }
    
    

}
我的命令行:

java -cp <classpath dirs> org.springframework.batch.core.launch.support.CommandLineJobRunner org.springframework.batch.core.launch.support.CommandLineJobRunner <<packagename>.SpringBatchConfiguration someJob

java-cp org.springframework.batch.core.launch.support.CommandLineJobRunner org.springframework.batch.core.launch.support.CommandLineJobRunner因为您使用的是Spring Boot,所以不需要使用CommandLineJobRunner运行作业。您可以使用以下工具运行作业:
java-jaryourjob.jar
。看一下入门指南:因为您使用的是Spring Boot,所以不需要使用CommandLineJobRunner运行作业。您可以使用以下工具运行作业:
java-jaryourjob.jar
。请参阅《入门指南》: