【发布时间】:2017-04-03 12:05:58
【问题描述】:
当我在 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 的建议,但它们都不起作用。有人遇到过这种问题吗?
谢谢, 尼尔
【问题讨论】:
-
使用profile怎么样?
-
嗨飞行僵尸,感谢您的回复。即使我使用 profile ,我也需要在所有配置文件中都有两个数据源。所以,我猜问题仍然会来。虽然不确定
-
你能显示抛出的异常吗?
-
我仍然不确定您在寻找什么?如果你想使用多个数据库,那么你必须改变你的方法,比如使用
hibernate并且你没有指定你的最终目标是什么,如果你指定了你的最终目标,那么其他人会很容易:) -
这是我得到的异常:原因:org.springframework.beans.BeanInstantiationException:无法实例化[org.springframework.cloud.task.batch.configuration.TaskBatchExecutionListenerFactoryBean]:工厂方法'taskBatchExecutionListener ' 抛出异常;嵌套异常是 java.lang.IllegalStateException: Expected one datasource and found 2 End Goal: 配置具有多个数据源的 Spring 云任务应用程序。 Spring Cloud Task 将使用一个数据源来存储所有作业执行细节,另一个数据源将用于我的应用程序数据。
标签: spring spring-boot spring-batch spring-cloud-task