找不到ResourcelessTransactionManager

时间:2017-12-13 07:05:44

标签: java spring spring-batch

我正在尝试在Spring启动应用程序之上安排Spring Batch。以下是我的配置。但是,当应用程序启动失败并出现以下错误时,我发现错误。

ScheduleConfig中方法mapJobRepositoryFactory的参数0需要一个无法找到的类型为'org.springframework.batch.support.transaction.ResourcelessTransactionManager'的bean。有人可以说明为什么会发生这种情况吗?

@Configuration
@EnableScheduling
public class ScheduleConfig {

    @Bean
    public ResourcelessTransactionManager transactionManager() {
        return new ResourcelessTransactionManager();
    }

    @Bean
    public MapJobRepositoryFactoryBean mapJobRepositoryFactory(
            ResourcelessTransactionManager transactionManager) throws Exception {

        MapJobRepositoryFactoryBean factory = new
                MapJobRepositoryFactoryBean(transactionManager);

        factory.afterPropertiesSet();

        return factory;
    }

    @Bean
    public JobRepository jobRepository(
            MapJobRepositoryFactoryBean factory) throws Exception {
        return factory.getObject();
    }

    @Bean
    public SimpleJobLauncher jobLauncher(JobRepository jobRepository) {
        SimpleJobLauncher launcher = new SimpleJobLauncher();
        launcher.setJobRepository(jobRepository);
        return launcher;
    }

}

2 个答案:

答案 0 :(得分:1)

在类的顶部添加@EnableBatchProcessing:)

答案 1 :(得分:0)

不使用

公共PlatformTransactionManager transactionManager(....

原因... 它与“ DefaultBatchConfigurer”中的“ PlatformTransactionManager”冲突。