• 【spring源码学习】spring的IOC容器在初始化bean过程


    【一】初始化IOC的bean的时候Spring会执行的一些回调方法

    (1)spring bean创建的前置处理

        =>ApplicationContextAwareProcessor 在创建bean的时候调用

          bean.setEnvironment(this.applicationContext.getEnvironment())

          bean.setEmbeddedValueResolver(new EmbeddedValueResolver(this.applicationContext.getBeanFactory()))

          bean.setResourceLoader(this.applicationContext)

          bean.setApplicationEventPublisher(this.applicationContext)

          bean.setMessageSource(this.applicationContext)

          setApplicationContext(this.applicationContext)

        =>在该阶段spring配置的或者我们自定义的 BeanPostProcessor的接口实现会执行postProcessBeforeInitialization(final Object bean, String beanName)方法 中调用相关Aware的接口方法。


    (2)spring的Aware的相关接口的调用

        =>BeanNameAware的setBeanName(beanName)

        =>BeanClassLoaderAware的setBeanClassLoader(getBeanClassLoader())

        =>BeanFactoryAware 的setBeanFactory(AbstractAutowireCapableBeanFactory.this)
    (3)spring的InitializingBean的接口的调用
        =>afterPropertiesSet()方法的调用

    (4)bean中配置的init方法

        =>自定义配置

    (5)spring bean创建的后置处理

        =>在该阶段spring配置的或我们自定义的BeanPostProcessor的接口实现会执行postProcessAfterInitialization(Object bean, String beanName)方法
        =>例如事务管理代理,动态代理的代理对象创建,都在这个环节完成。

  • 相关阅读:
    pyzabbix 接口使用
    lvs使用进阶
    lvs基础
    linux服务基础之nginx配置详解
    linux服务基础之编译安装nginx
    iptables (二) nat & tcp_wrapper
    iptables (一) 主机防火墙和网络防火墙
    rsyslog及loganalyzer
    linux基础之Mini Linux制作
    linux基础之磁盘管理与文件系统
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/7229930.html
Copyright © 2020-2023  润新知