• 46、[源码]-Spring容器创建-注册BeanPostProcessors


    46、[源码]-Spring容器创建-注册BeanPostProcessors

    6、registerBeanPostProcessors(beanFactory);注册BeanPostProcessor(Bean的后置处理器)【 intercept bean creation】
    • 不同接口类型的BeanPostProcessor;在Bean创建前后的执行时机是不一样的
    • BeanPostProcessor、
    • DestructionAwareBeanPostProcessor、
    • InstantiationAwareBeanPostProcessor、
    • SmartInstantiationAwareBeanPostProcessor、
    • MergedBeanDefinitionPostProcessor【internalPostProcessors】、
    1. 获取所有的 BeanPostProcessor;后置处理器都默认可以通过PriorityOrdered、Ordered接口来执行优先级
    2. 先注册PriorityOrdered优先级接口的BeanPostProcessor;
      把每一个BeanPostProcessor;添加到BeanFactory中
      beanFactory.addBeanPostProcessor(postProcessor);
    3. 再注册Ordered接口的
    4. 最后注册没有实现任何优先级接口的
    5. 最终注册MergedBeanDefinitionPostProcessor;
    6. 注册一个ApplicationListenerDetector;来在Bean创建完成后检查是否是ApplicationListener,如果是
      applicationContext.addApplicationListener((ApplicationListener<?>) bean);
  • 相关阅读:
    跨域抓取360搜索结果
    css的圣杯布局
    css的双飞翼布局
    C#WebBroswer控件的使用
    使用Chart控件进行实时监控
    GzipStream的简单使用压缩和解压
    poj 1611 The Suspects
    hdu 1856 More is better
    hdu 1232
    UvaOJ 10167
  • 原文地址:https://www.cnblogs.com/Grand-Jon/p/10073682.html
Copyright © 2020-2023  润新知