spring ioc流程
BeanFactory对象的创立和加强,实现bean配置信息的加载和解析
- 创立Beanfactory容器
- 通过xml,注解等形式定义bean信息,由BeanDefinitionReader接口解析生成BeanDefinition,存于BeanDefinitionMap中,这是属于BeanFactory的一部分
- 通过BeanFactoryPostProcessor后置处理器接口对BeanFactory加强解决,其中罕用的实现类包含ConfigurationClassPostProcessor(注解),PlaceholderConfigurerSupport(占位符)等
Bean的实例化,初始化过程
- 注册BeanPostProcessor后置处理器(registerBeanPostProcessors(beanFactory))
- 初始化信息源,国际化解决(initMessageSource())
- 初始化多播器(initApplicationEventMulticaster())
- 注册监听器(registerListeners())
实例化并初始化bean对象
这一步才是真正开始创立bean,其中包含通过反射实例化对象,填充属性populateBean(),执行Aware接口办法(invokeAwareMethods()获取容器内置属性),执行实例化前置办法(processor.postProcessBeforeInitialization),执行自定义init办法(invokeInitMethods()),执行实例化后置办法(processor.postProcessAfterInitialization)等过程