当我在spring spring任务应用程序中定义多个数据源时,它会抛出异常。这就是我定义数据源的方式
@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,但它们都没有工作。有没有人遇到过这种问题?
谢谢, 尼尔
答案 0 :(得分:2)
您将需要覆盖侦听器。它就像其他autoconfig周围任务一样,不知道在定义多个数据源时要使用的数据源。我在未来的版本中创建了一个问题来解决这个问题:https://github.com/spring-cloud/spring-cloud-task/issues/252
答案 1 :(得分:0)
您需要覆盖DefaultTaskConfigurer
@Configuration
public class BatchConfigurer extends DefaultTaskConfigurer
{
public BatchConfigurer(@Qualifier("batchDataSource") DataSource dataSource)
{
super(dataSource);
}
}