错误调试记录2

来源:互联网 发布:mac怎么用sai 编辑:程序博客网 时间:2024/04/28 05:59

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>