@Autowired是怎么工作的?

190 阅读1分钟

企业微信20210324-111503.png

企业微信20210324-111744.png

企业微信20210324-112302.png 经过上面几步,就将AutowiredAnnotationBeanPostProcessor的RootBeanDefinition放入到beanDefinitionMap中,类的继承关系如下:

企业微信20210324-112834.png

实现PriorityOrdered接口,主要是实现了getOrder()方法,用于排序;
实现BeanFactoryAware接口,实现setBeanFactory方法,通过Aware回调给beanFactory赋值;
实现MergedBeanDefinitionPostProcessor接口:
    1、postProcessMergedBeanDefinition
    2、resetBeanDefinition
实现SmartInstantiationAwareBeanPostProcessor接口:
    1、determineCandidateConstructors
实现InstantiationAwareBeanPostProcessor接口:
    1、postProcessProperties

看下他的唯一构造函数:

企业微信20210324-145600.png

几个@Autowired的注意点:

企业微信20210324-150537.png

企业微信20210324-150944.png

企业微信20210324-151110.png