1、属性注入方法入口
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#populateBean
2、主要的调用链(由外到内)
# (1)CommonAnnotationBeanPostProcessor org.springframework.context.annotation.CommonAnnotationBeanPostProcessor#postProcessProperties # (2)Injectionmetadata org.springframework.beans.factory.annotation.Injectionmetadata#inject org.springframework.beans.factory.annotation.Injectionmetadata.InjectedElement#inject # (3)CommonAnnotationBeanPostProcessor org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.ResourceElement#getResourceToInject org.springframework.context.annotation.CommonAnnotationBeanPostProcessor#getResource org.springframework.context.annotation.CommonAnnotationBeanPostProcessor#autowireResource # (4)DefaultListableBeanFactory org.springframework.beans.factory.support.DefaultListableBeanFactory#resolveDependency org.springframework.beans.factory.support.DefaultListableBeanFactory#doResolveDependency org.springframework.beans.factory.support.DefaultListableBeanFactory#findAutowireCandidates org.springframework.beans.factory.support.DefaultListableBeanFactory#addCandidateEntry # (5)AbstractBeanFactory org.springframework.beans.factory.support.AbstractBeanFactory#getType(java.lang.String) org.springframework.beans.factory.support.AbstractBeanFactory#getType(java.lang.String, boolean) org.springframework.beans.factory.support.AbstractBeanFactory#predictBeanType
# (6)获取依赖对象实例
org.springframework.beans.factory.config.DependencyDescriptor#resolveCandidate org.springframework.beans.factory.support.AbstractBeanFactory#getBean(java.lang.String) org.springframework.beans.factory.support.AbstractBeanFactory#doGetBean
# (7)设置依赖对象的值
Field field = (Field) this.member; ReflectionUtils.makeAccessible(field); field.set(target, getResourceToInject(target, requestingBeanName));



