我正在尝试在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;
}
}
答案 0 :(得分:1)
在类的顶部添加@EnableBatchProcessing:)
答案 1 :(得分:0)
不使用
公共PlatformTransactionManager transactionManager(....
原因... 它与“ DefaultBatchConfigurer”中的“ PlatformTransactionManager”冲突。