美文网首页
关于BeanPostProcessor中各个回调调用的顺序

关于BeanPostProcessor中各个回调调用的顺序

作者: 施智沂 | 来源:发表于2020-02-12 16:37 被阅读0次

    1、InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(beanClass, beanName)

        该方法在创建对象之前会先掉用,如果有返回实例则直接使用不会去走下面创建对象的逻辑,并在之后执行

            BeanPostProcessor.postProcessAfterInitialization(result, beanName)

    2、SmartInstantiationAwareBeanPostProcessor.determineCandidateConstructors(beanClass, beanName)

        如果需要的话,会在实例化对象之前执行

    3、MergedBeanDefinitionPostProcessor.postProcessMergedBeanDefinition(mbd, beanType, beanName)

        在对象实例化完毕 初始化之前执行

    4、InstantiationAwareBeanPostProcessor.postProcessAfterInstantiation(bw.getWrappedInstance(), beanName)

        在bean创建完毕初始化之前执行

    5、InstantiationAwareBeanPostProcessor.postProcessPropertyValues(pvs, filteredPds, bw.getWrappedInstance(), beanName)

        在bean的property属性注入完毕 向bean中设置属性之前执行

    6、BeanPostProcessor.postProcessBeforeInitialization(result, beanName)

        在bean初始化(自定义init或者是实现了InitializingBean.afterPropertiesSet())之前执行

    7、BeanPostProcessor.postProcessAfterInitialization(result, beanName)

        在bean初始化(自定义init或者是实现了InitializingBean.afterPropertiesSet())之后执行

    8、其中DestructionAwareBeanPostProcessor方法的postProcessBeforeDestruction(Object bean, String beanName)会在销毁对象前执行

    相关文章

      网友评论

          本文标题:关于BeanPostProcessor中各个回调调用的顺序

          本文链接:https://www.haomeiwen.com/subject/jrscfhtx.html