Spring默认有个规则,老是先初始化主调Bean,而后再初始化依赖Bean。大多数状况下,Bean之间的依赖很是直接,Spring返回Bean实列以前,完成Bean依赖关系的注入。假如Bean A依赖Bean B,程序请求Bean A时,Spring容器会先初始化Bean B,再将B注入A,最后将Bean A返回给程序。code
在某些状况下,若Bean B还未被初始化,就将A返回给程序,此时将发生异常。为了指定Bean在目标Bean以前初始化,可使用depends-on属性强制初始化。xml
<!--在初始化aBean以前,强制初始化bBean--> <bean id="aBean" class="Abean" depends-on="B"> <property name="B" ref="bBean"/> </bean> <bean id="bBean" class="Bbean"/>