AOP原理-AnnotationAwareAspectJAutoProxyCreator执行时机 || InstantiationAwareBeanPostProcessor

AnnotationAwareAspectJAutoProxyCreator => InstantiationAwareBeanPostProcessor

 

   finishBeanFactoryInitialization(beanFactory)
   完成BeanFactory初始化工作
   创建剩下的单实例bean

*        1)、遍历获取容器中所有的Bean,依次创建对象getBean(beanName);
*           getBean->doGetBean()->getSingleton()->
*        2)、创建bean
*           【AnnotationAwareAspectJAutoProxyCreator在所有bean创建之前会有一个拦截,
              InstantiationAwareBeanPostProcessor,会调用postProcessBeforeInstantiation()】
*           1)、先从缓存中获取当前bean,如果能获取到,说明bean是之前被创建过的,直接使用,否则再创建;
*              只要创建好的Bean都会被缓存起来
*           2)、createBean();创建bean;
*              AnnotationAwareAspectJAutoProxyCreator 会在任何bean创建之前先尝试返回bean的实例
*              【BeanPostProcessor是在Bean对象创建完成初始化前后调用的】
*              【InstantiationAwareBeanPostProcessor是在创建Bean实例之前先尝试用后置处理器返回对象的】
*              1)、resolveBeforeInstantiation(beanName, mbdToUse);解析BeforeInstantiation
*                 希望后置处理器在此能返回一个代理对象;如果能返回代理对象就使用,如果不能就继续
*                 1)、后置处理器先尝试返回对象;
*                    bean = applyBeanPostProcessorsBeforeInstantiation():
*                       拿到所有后置处理器,如果是InstantiationAwareBeanPostProcessor;
*                       就执行postProcessBeforeInstantiation
*                    if (bean != null) {
                     bean = applyBeanPostProcessorsAfterInitialization(bean, beanName);
                  }
*
*              2)doCreateBean(beanName, mbdToUse, args);真正的去创建一个bean实例;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值