3

当我在 Spring Cloud 任务应用程序中定义多个数据源时,它会引发异常。这就是我定义数据源的方式

@Primary
@Bean(name="datasource1")
@ConfigurationProperties(prefix="spring.datasource")
public javax.sql.DataSource primaryDataSource() {
    return  DataSourceBuilder.create().build();
}

@Bean(name="datasource2")
@ConfigurationProperties(prefix="spring.datasource1")
public javax.sql.DataSource primaryDataSource1() {
    return  DataSourceBuilder.create().build();
}

@Bean
public TaskConfigurer taskConfigurer() {
    return new DefaultTaskConfigurer(primaryDataSource());
}

我已经看到了放置 @Primary 的建议,像上面那样定义 TaskConfigurer ,但它们都不起作用。有人遇到过这种问题吗?

谢谢,尼尔

4

2 回答 2

3

您将需要覆盖侦听器。与其他围绕任务的自动配置一样,当您定义了多个数据源时,它不知道要使用哪个数据源。我已经创建了一个问题来在未来的版本中解决这个问题:https ://github.com/spring-cloud/spring-cloud-task/issues/252

于 2016-11-21T16:31:19.720 回答
0

您需要覆盖 DefaultTaskConfigurer

@Configuration
public class BatchConfigurer extends DefaultTaskConfigurer
{

    public BatchConfigurer(@Qualifier("batchDataSource") DataSource dataSource) 
    {
        super(dataSource);
    }

}
于 2019-05-28T14:27:04.427 回答