zoukankan      html  css  js  c++  java
  • 错误调试记录2

    bean 1

    <bean id="rebateInBo" class="com.shunwang.swpay.rebate.bo.imp.RebateInBoImp" >

          <property name="dao">
               <ref bean="rebateInDao"/>
          </property>
          <property name="rebateOutBo">
               <ref bean="rebateOutBo"/>
          </property>
         
           <property name="bussPartnerBo">
               <ref bean="bussPartnerBo"/>
          </property>
         
     </bean>

    bean 2

    <bean id="rebateOutBo" class="com.shunwang.swpay.rebate.bo.imp.RebateOutBoImp">
          <property name="dao">
               <ref bean="rebateOutDao"/>
          </property>
          <property name="rebateInBo">
               <ref bean="rebateInBo"/>
          </property>
     </bean>

    启动异常:

    [ERROR]2011-03-11 14:53:29,687 MESSAGE : Context initialization failed
    org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'rebateInBo': Bean with name 'rebateInBo' has been injected into other beans [rebateOutBo] in its raw version as part of a circular reference, but has eventually been wrapped (for example as part of auto-proxy creation). This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - consider using 'getBeanNamesOfType' with the 'allowEagerInit' flag turned off, for example.
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:431)
     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)

    解决方法:

    lazy-init="true" 加到一个bean的属性里就好了,如下:

    <bean id="rebateInBo" class="com.shunwang.swpay.rebate.bo.imp.RebateInBoImp"  lazy-init="true">

          <property name="dao">
               <ref bean="rebateInDao"/>
          </property>
          <property name="rebateOutBo">
               <ref bean="rebateOutBo"/>
          </property>
         
           <property name="bussPartnerBo">
               <ref bean="bussPartnerBo"/>
          </property>
         
     </bean>


     

  • 相关阅读:
    Python:字典
    Linux基础:dirname命令总结
    (三)封装与类
    (二)Java编程基础
    Ubuntu18.04 安装QQ、Tim、微信与win无差异
    (一)JDK安装和使用eclipse输出hello world
    Java复习目录
    (八)MySQL事务、视图、变量、存储过程、函数、流程控制结构
    (七)MySQL常见的数据类型、约束和标识列
    (六)MySQL数据、库、表的管理
  • 原文地址:https://www.cnblogs.com/alaricblog/p/3278204.html
Copyright © 2011-2022 走看看