zoukankan      html  css  js  c++  java
  • 【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)方法
        =>例如事务管理代理,动态代理的代理对象创建,都在这个环节完成。

  • 相关阅读:
    手机测试移动端项目
    事件绑定与事件委托
    jq中attr()和prop() 属性的区别
    jq 加载的几种方法
    $(document).height 与$(window).height的区别
    js动画之缓冲运动
    js动画之简单运动二
    js动画之简单运动一
    css浏览器窗口大小
    编程每一天
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/7229930.html
Copyright © 2011-2022 走看看