乐趣区

关于spring:Spring-IOC过程

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) 等过程

退出移动版