zoukankan      html  css  js  c++  java
  • SpringIOC源码解读(大纲)

    Spring核心IOC源码解读

      前言:Spring IOC容器是Spring核心的模块,阅读源码了解它的运行机制,可以更深刻地理解Spring中bean的生成原理、生命周期等。更可以了解各个Spring中接口的作用,对其理解并加以运用。

    使用XML文件的方式创建SpringBean容器

     ClassPathXmlApplicationContext父类结构图

        ClassPathXmlApplicationContext 在new对象初始化时,调用 refresh() 方法,此方法为父类 AbstractApplicationContext 的方法。这里用了一个设计模式: 模板方法模式 。

    AbstractApplicationContext.refresh()

     prepareRefresh(); 

      做一些简单的初始化操作

      1.校验环境参数;

      2.初始化early集合;

     ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory(); 获取BeanFactory

      这步很重要,初始化了beanFactory,还解析了xml文件从中定义了对象的BeanDefinition。

      详解链接:Spring核心IOC源码解读(一)获取BeanFactory

     AbstractApplicationContext.prepareBeanFactory(); 准备BeanFactory

      为BeanFactory做准备,初始化一些属性,包括:SpEL解析器、属性注册器、Bean后置处理器、系统环境属性

      详解链接:Spring核心IOC源码解读(二)为BeanFactory准备数据

     AbstractApplicationContext.invokeBeanFactoryPostProcessors(beanFactory) 引用BeanFactoryPostProcessors实现类的postProcessBeanFactory(beanFactory)方法

       这一步主要是执行实现了BeanFactoryPostProcessors接口postProcessBeanFactory()方法,在获取到bean对象之后,执行此方法

       详解链接:Spring核心IOC源码解读(三)实现BeanFactoryPostProcessors接口的postProcessBeanFactory方法

     AbstractApplicationContext.registerBeanPostProcessors(bean, beanName) 调用BeanPostProcessor实现类的postProcessAfterInitialization(bean, beanName)方法

      在获取到Bean对象之后,执行此方法,和(三)种的逻辑类似,也是进行了排序。

    SpringIOC核心getBean()方法

      这个方法是SpringIOC的核心,包括了使用对象的创建(反射),对象的依赖(多级缓存),对象的生命周期实现等。

      详解:

  • 相关阅读:
    数论学习之乘法逆元
    数论学习之扩展欧几里得
    数论学习之费马与欧拉
    一次函数
    东南西北
    接水问题
    脱水缩合
    背单词
    单词接龙
    字符串,字符数组
  • 原文地址:https://www.cnblogs.com/lcmlyj/p/13361677.html
Copyright © 2011-2022 走看看