共计 717 个字符,预计需要花费 2 分钟才能阅读完成。
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) 等过程
正文完