spring ioc流程

BeanFactory对象的创立和加强,实现bean配置信息的加载和解析
  1. 创立Beanfactory容器
  2. 通过xml,注解等形式定义bean信息,由BeanDefinitionReader接口解析生成BeanDefinition,存于BeanDefinitionMap中,这是属于BeanFactory的一部分
  3. 通过BeanFactoryPostProcessor后置处理器接口对BeanFactory加强解决,其中罕用的实现类包含ConfigurationClassPostProcessor(注解),PlaceholderConfigurerSupport(占位符)等
Bean的实例化,初始化过程
  1. 注册BeanPostProcessor后置处理器(registerBeanPostProcessors(beanFactory))
  2. 初始化信息源,国际化解决(initMessageSource())
  3. 初始化多播器(initApplicationEventMulticaster())
  4. 注册监听器(registerListeners())
  5. 实例化并初始化bean对象

    这一步才是真正开始创立bean,其中包含通过反射实例化对象,填充属性populateBean(),执行Aware接口办法(invokeAwareMethods()获取容器内置属性),执行实例化前置办法(processor.postProcessBeforeInitialization),执行自定义init办法(invokeInitMethods()),执行实例化后置办法(processor.postProcessAfterInitialization)等过程