当前位置: 首页 > 知识库问答 >
问题:

SpringBoot BeanCurrentlyInCreationException,但在另一个没有Spring Boot的模块上不存在

冷翼
2023-03-14

在我的Web应用程序中,我使用以下Spring版本:

<org.springframework-version>3.2.9.RELEASE</org.springframework-version>

我有很多豆,这取决于另一个和形式循环,但没有问题,我可以使用

@Autowired
SampleBean bean

没有任何问题。

现在我正在尝试使用

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.3.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

不幸的是,当我试图从另一个模块注入beans时,我得到了异常:

Unsatisfied dependency expressed through field 'beanDao'; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'beanDao': Bean with name 'beanDao' has been injected into other beans [beanA,beanB] in its raw version as part of a circular reference, but has eventually been wrapped

如何解决?为什么我在SpringBoot上得到这个错误,而在没有使用SpringBoot的web应用程序上没有?

共有1个答案

孔华池
2023-03-14

Spring已经在' beanA '和' beanB '中注入了' beanDao '。现在,它将bean封装到一个代理中,并抛出异常。

“beanA”和“beanB”不会使用该代理,而是使用不需要的生bean。这就是为什么Spring提出了例外。

正如您之前所说,这是有效的,看起来新依赖关系中的某个东西正在创建此代理。

您可以尝试找出导致代理的原因并以某种方式禁用它。或者,更好的是,摆脱豆类依赖中的循环。

 类似资料:
  • 如图,我将framework中的ResponseResult引入到blog中,然后在maven install命令下报错。 blog依赖了framework。是不是因为我两个模块的java下的包名一样导致的,如果是的话,该怎么改呢?

  • 问题内容: 编码 给出输出 然后是代码 引发异常 总而言之,有一个类,但是模块没有attribute 。到底是怎么回事? 我正在使用Matplotlib 1.1.0和Python 2.7.3。 问题答案: 嘿。这是因为有 是 无类..直到有需要,当一个人从建。这是通过以下方法实现的: 因此它是即时生成的,但是它是的子类:

  • 问题内容: 我已使用以下命令“ go mod init database”在“数据库”文件夹中的“ GOPATH”之外创建了个人使用的模块库,但我不知道: 如何在其他模块中使用/ 导入 该模块? 操作系统: Windows 7 ,Go: v1.11 问题答案: 最简单,可行的现成解决方案是将您的包/模块放入VCS(例如github.com),因此其他包(在其他模块内部)可以通过导入来简单地引用它:

  • 我的主要模块与设置。格拉德尔: 背景格拉德尔 我的听众: 当我运行我的bootApplication主类时,它会在根构建目录中创建一个eventlistener-. jar文件。但是eventlistener模块没有检查资源文件夹,我猜它没有看到引导应用上下文。也许它应该被收集到一个jar文件?看起来我在gradle构建文件中遗漏了一些东西。

  • 问题内容: 我试图使用Dagger在正在构建的应用程序上进行依赖注入,当我拥有一个程序包的模块(取决于注入器(可能是另一个模块)提供的值)时,在构造适当的DAG时遇到了麻烦。 如果我有一个用于配置变量的简单模块(例如,我可能想换成测试环境) 而另一个模块依赖于它,例如 我尝试在构造函数中引导注入的行失败,并且它抱怨我没有在适当的模块中指定显式行。 通过反复试验,我发现如果在行中添加,这种情况就消失