06_注册bean的后置处理器

查看全部
// Register bean processors that intercept bean creation. 注册bean的后置处理器 拦截bean的创建 registerBeanPostProcessors(beanFactory);

//注册bean的后置处理器
PostProcessorRegistrationDelegate.registerBeanPostProcessors(beanFactory, this);
  1. 获取所有的后置处理器
String[] postProcessorNames = beanFactory.getBeanNamesForType(BeanPostProcessor.class, true, false);
  1. 类似第五部beanFactory的后置处理器一样,将bean的后置处理器分类并排序,按照PriorityOrdered -> Ordered -> 其他的顺序注册,添加到BeanFactory中
  2. 在第二小步中还分出来一个实现了MergedBeanDefinitionPostProcessor的后置处理器List,再次注册MergedBeanDefinitionPostProcessor后置处理器
    2、3小步代码就不附啦~~
  3. 向beanFactory中增加一个新的后置处理器ApplicationListenerDetector,顾名思义,ApplicationListener探测器,作用是在创建完bean之后判断是否实现了ApplicationListener,如果实现了,则将bean放入容器中。
// Re-register post-processor for detecting inner beans as ApplicationListeners,
// moving it to the end of the processor chain (for picking up proxies etc).
beanFactory.addBeanPostProcessor(new ApplicationListenerDetector(applicationContext));

你可能感兴趣的:(06_注册bean的后置处理器)