在我的项目中,我使用多个架构(多个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;
....
}
答案 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);
}