Object originalBean = bean;
bean = initializeBean(beanName, bean, mbd);
if (!this.allowRawInjectionDespiteWrapping && originalBean != bean &&
mbd.isSingleton() && hasDependentBean(beanName)) {
throw new BeanCurrentlyInCreationException(beanName,
"Bean with name '" + beanName + "' has been injected into other beans " +
getDependentBeans(beanName) + " 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 " +