【问题标题】:When I add Spring batch configuration I get error当我添加 Spring 批处理配置时出现错误
【发布时间】:2020-02-21 10:24:26
【问题描述】:

在我的项目中,我使用多个架构(多个数据源)

当我添加 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;
   ....


}

【问题讨论】:

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


    【解决方案1】:

    如果你也遇到同样的问题,你需要验证两点。

    首先你必须不要创建一个名为 transactionManager 的 bean 事务(这是 spring batch 使用的默认事务)

    其次你需要重写getTransactionManager来指定你要使用哪个transactionManager以及你要使用哪个dataSource

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-23
      • 2020-02-12
      • 2021-03-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多