spring的自动装配,骚话@Autowired的底层工作原理

    十年前,我:我交女票了,比我大两岁。妈:不行!赶紧分!
    八年前,我:我交女票了,个比我小两岁,外地的。妈:你就不能让我省点心?
    五年前,我:我交女票了,市长的女儿。妈:别人还能看上你?分了吧!
    今年,我挺着大肚子踏进家门。妈:闺女啊,你终于开窍了 !

spring的自动装配,骚话@Autowired的底层工作原理

前情回顾

  Spring拓展接口之BeanPostProcessor,我们来看看它的底层实现中讲到了spring对BeanPostProcessor的底层支持,并且知道了BeanPostProcessor的两个方法:postProcessBeforeInitialization、postProcessAfterInitialization的执行时机,没看的小伙伴可以回过头去看看。本来spring的自动装配是打算放到上一篇博文中详细讲解的,可后来觉得篇幅可能太大了(细心的小伙伴可能会有这样的表情:

spring的自动装配,骚话@Autowired的底层工作原理

,除了几幅图,真没什么内容!),既然你们都感觉出来了,那我也就明人不说暗话了,之所以没放到上篇讲解,确实是因为篇幅太大了(哈哈哈,是不是很想打我?

spring的自动装配,骚话@Autowired的底层工作原理

); 好了,我们言归正传,之所以没放到上篇来讲,篇幅只是原因之一,最主要的原因是发现我犯错了! 犯什么错了呢(不是黄赌毒啊,那是犯罪,我是正人君子!

spring的自动装配,骚话@Autowired的底层工作原理

),我想当然了! 理所当然的认为自动装配是在AutowiredAnnotationBeanPostProcessor的postProcessBeforeInitialization或postProcessAfterInitialization中实现的,我们来看下AutowiredAnnotationBeanPostProcessor类继承图

spring的自动装配,骚话@Autowired的底层工作原理

  它间接实现了BeanPostProcessor,我们再去看下那两个方法(在父类InstantiationAwareBeanPostProcessorAdapter中)

spring的自动装配,骚话@Autowired的底层工作原理

spring的自动装配,骚话@Autowired的底层工作原理

@Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { return bean; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgsxx.html