十年前,我:我交女票了,比我大两岁。妈:不行!赶紧分!
八年前,我:我交女票了,个比我小两岁,外地的。妈:你就不能让我省点心?
五年前,我:我交女票了,市长的女儿。妈:别人还能看上你?分了吧!
今年,我挺着大肚子踏进家门。妈:闺女啊,你终于开窍了 !
Spring拓展接口之BeanPostProcessor,我们来看看它的底层实现中讲到了spring对BeanPostProcessor的底层支持,并且知道了BeanPostProcessor的两个方法:postProcessBeforeInitialization、postProcessAfterInitialization的执行时机,没看的小伙伴可以回过头去看看。本来spring的自动装配是打算放到上一篇博文中详细讲解的,可后来觉得篇幅可能太大了(细心的小伙伴可能会有这样的表情:
,除了几幅图,真没什么内容!),既然你们都感觉出来了,那我也就明人不说暗话了,之所以没放到上篇讲解,确实是因为篇幅太大了(哈哈哈,是不是很想打我? ); 好了,我们言归正传,之所以没放到上篇来讲,篇幅只是原因之一,最主要的原因是发现我犯错了! 犯什么错了呢(不是黄赌毒啊,那是犯罪,我是正人君子!),我想当然了! 理所当然的认为自动装配是在AutowiredAnnotationBeanPostProcessor的postProcessBeforeInitialization或postProcessAfterInitialization中实现的,我们来看下AutowiredAnnotationBeanPostProcessor类继承图它间接实现了BeanPostProcessor,我们再去看下那两个方法(在父类InstantiationAwareBeanPostProcessorAdapter中)
@Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { return bean; }