Spring---循环依赖-@Resource
/** * 【循环依赖---@Resource】 * BeanPostProcessor : org.springframework.context.annotation.CommonAnnotationBeanPostProcessor * org.springframework.beans.factory.config.BeanPostProcessor implementation that supports common Java annotations out of the box, in particular the JSR-250 annotations in the javax.annotation package. * BeanPostProcessor实现,支持 公共Java注解,特别是 javax.annotation 的注解; * * This post-processor includes support for the javax.annotation.PostConstruct and javax.annotation.PreDestroy annotations * - as init annotation and destroy annotation, respectively - through inheriting from InitDestroyAnnotationBeanPostProcessor with pre-configured annotation types. * 该BeanPostProcessor支持 javax.annotation.PostConstruct、javax.annotation.PreDestroy(通过继承的InitDestroyAnnotationBeanPostProcessor 实现); * * * public class CommonAnnotationBeanPostProcessor extends InitDestroyAnnotationBeanPostProcessor implements InstantiationAwareBeanPostProcessor, BeanFactoryAware, Serializable { * public PropertyValues postProcessProperties(PropertyValues pvs, Object bean, String beanName) {} * } * * * AbstractAutowireCapableBeanFactory#populateBean{ * ... * if (hasInstAwareBpps) { * for (BeanPostProcessor bp : getBeanPostProcessors()) { * ... * PropertyValues pvsToUse = ibp.postProcessProperties(pvs, bw.getWrappedInstance(), beanName); * ... * } * } * ... * } */