Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringBoot正在创建DynamicDataSource:请求的bean当前正在创建中:是否存在无法解析的循环引用?_Java_Spring_Spring Boot_Spring Data - Fatal编程技术网

Java SpringBoot正在创建DynamicDataSource:请求的bean当前正在创建中:是否存在无法解析的循环引用?

Java SpringBoot正在创建DynamicDataSource:请求的bean当前正在创建中:是否存在无法解析的循环引用?,java,spring,spring-boot,spring-data,Java,Spring,Spring Boot,Spring Data,是否存在无法解决的循环引用?我怎样才能修好它 谢谢你的回答 在您的例子中,dynamicDataSource创建依赖于其他两个beanslaveDataSource&masterDataSource。因此,您需要在beandynamicDataSource上添加@DependsOn,这指示Spring创建beandynamicDataSource也依赖于其他两个bean 因此,您的更新配置应如下所示: Error creating bean with name 'dynamicDataSourc

是否存在无法解决的循环引用?我怎样才能修好它


谢谢你的回答

在您的例子中,
dynamicDataSource
创建依赖于其他两个bean
slaveDataSource
&
masterDataSource
。因此,您需要在bean
dynamicDataSource
上添加
@DependsOn
,这指示Spring创建bean
dynamicDataSource
也依赖于其他两个bean

因此,您的更新配置应如下所示:

Error creating bean with name 'dynamicDataSource': Requested bean is currently in creation: Is there an unresolvable circular reference? 
@DependsOn({“masterDataSource”,“slaveDataSource”})
@Bean(name=“dynamicDataSource”)
公共数据源数据源(@Autowired@Qualifier(“masterDataSource”)数据源masterDataSource,@Autowired@Qualifier(“slaveDataSource”)数据源slaveDataSource){
DynamicDataSource DynamicDataSource=新的DynamicDataSource();
Map dataSourceMap=newhashmap();
dataSourceMap.put(“masterDataSource”,masterDataSource);
dataSourceMap.put(“slaveDataSource”,slaveDataSource);
dynamicDataSource.setTargetDataSources(dataSourceMap);
dynamicDataSource.setDefaultTargetDataSource(masterDataSource);
返回数据源;
}
更新 根据,

当前bean所依赖的bean。指定的任何bean都是 保证在这个bean之前由容器创建。习惯于 在bean不显式依赖于 另一种是通过属性或构造函数参数,而不是 取决于另一个bean初始化的副作用


或者要了解更多信息,请检查此项,在bean顶部提及@Order可能会解决此问题。 就像你提到的@Order(1),@Order(2)


或者通过将日志级别设置为在应用程序中调试来检查日志。属性

请将完整的错误日志sadd@DependsOn({“masterDataSource”,“slaveDataSource”})上载到公共数据源数据源…@Afridi非常感谢,它现在正在工作。但是,我不明白为什么会有循环引用。
@Bean(name=“dynamicTransactionManager”)公共数据源TransactionManager masterTransactionManager(@Qualifier(“dynamicDataSource”)数据源dynamicDataSource)
dynamicTransactionManager
创建依赖于
dynamicDataSource
Bean,但是我们不需要添加
@DependsOn(“dynamicDataSource”)
。这让我很困惑
Error creating bean with name 'dynamicDataSource': Requested bean is currently in creation: Is there an unresolvable circular reference? 
@DependsOn({"masterDataSource", "slaveDataSource"})
@Bean(name = "dynamicDataSource")
public DataSource dataSource(@Autowired @Qualifier("masterDataSource") DataSource masterDataSource, @Autowired @Qualifier("slaveDataSource") DataSource slaveDataSource) {
    DynamicDataSource dynamicDataSource = new DynamicDataSource();
    Map<Object, Object> dataSourceMap = new HashMap<>();
    dataSourceMap.put("masterDataSource", masterDataSource);
    dataSourceMap.put("slaveDataSource", slaveDataSource);
    dynamicDataSource.setTargetDataSources(dataSourceMap);
    dynamicDataSource.setDefaultTargetDataSource(masterDataSource);
    return dynamicDataSource;
}