当我添加Spring批处理配置时出现错误

时间:2020-02-21 10:24:26

标签: spring spring-data-jpa spring-data spring-batch

在我的项目中,我使用多个架构(多个dataSource)

添加Spring批处理配置时,出现错误:No qualifying bean of type 'org.springframework.transaction.PlatformTransactionManager' available: expected single matching bean but found 5

但是当我删除spring批处理配置时,错误就被删除了。

@Configuration
@EnableBatchProcessing
@Import(MyDataSourceClassConfig.class)
public class TestBatchJobConfiguration extends DefaultBatchConfigurer {

    @Autowired
    private JobBuilderFactory jobBuilderFactory;
    @Autowired
    private StepBuilderFactory stepBuilderFactory;
   ....


}

1 个答案:

答案 0 :(得分:0)

如果您也遇到相同的问题,则需要验证两点。

首先,您不必创建一个名为transactionManager的bean事务(这是Spring批处理使用的默认事务)

第二,您需要重写getTransactionManager,以指定要使用的transactionManager和要使用的数据源

@Autowired
@Qualifier("myPersonalTransactionManager")
private PlatformTransactionManager transactionManager;


@Override
public PlatformTransactionManager getTransactionManager() {
    return transactionManager;
}
@Override
@Autowired
public void setDataSource(@Qualifier("thirdDataSource") DataSource batchDataSource) {
    super.setDataSource(batchDataSource);
}