美文网首页
@PostConstruct和BeanpostProcessor

@PostConstruct和BeanpostProcessor

作者: 简书徐小耳 | 来源:发表于2018-12-19 17:42 被阅读40次

    同时@Bean和@Component采用这两个方式注册同一个bean 一般会采用@Bean方式 这个时候我们的beanDefinition的 class [null]; scope=;是空的 但是factoryBeanName=testIocImplB; factoryMethodName=testIocImplE 则是有值的
    BeanPostProcessor的相关疑点
    今天我一个同事实现了一个BeanPostProcessor 同时 让其两个方法都返回null,这个时候 只有实现BeanPostProcessor的类的@PostConstruct 有效,其他的都失效了
    初始化有两种方式 一个是spring的init 一个是我们的@PostConstruct, @PostConstruct是依靠在applyBeanPostProcessorsBeforeInitialization时候执行InitDestroyAnnotationBeanPostProcessor
    后者是在这之后invokeInitMethods
    那么当我们实现BeanPostProcessor的时候postProcessBeforeInitialization 返回null,applyBeanPostProcessorsBeforeInitialization在遇到null之后直接返回不会执行后续的BeanPostProcessor
    所以不会执行其他bean的@PostConstruct,如果我们强行把我们的子类BeanPostProcessor设置PriportyOder的为Integer也没有用,因为我们在注册BeanPostProcessor的时候 会在最后注册完成了 把spring内部的几个beanPostProcessor重新注册在最后

    相关文章

      网友评论

          本文标题:@PostConstruct和BeanpostProcessor

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