在我的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>
不幸的是,当我尝试从另一个模块注入bean时,我得到了异常:
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应用程序上没有收到此错误?
答案 0 :(得分:0)
Spring已经将'beanDao'注入'beanA'和'beanB'。现在它将bean包装成一个代理并抛出异常。
'beanA'和'beanB'不会使用该代理,而是使用原始bean,这是不可能的。这就是为什么春天提出异常。
正如你之前说的那样,看起来新依赖中的某些东西正在创建这个代理。
您可以尝试找出导致代理的原因并以某种方式禁用它。 或者,更好的是,摆脱bean依赖的循环。