Spring IoC 容器启动时做了什么?

2021-01-24

BeanFactory 是 Spring IoC 容器的底层实现,以 XmlBeanFactory 为例

  1. XmlBeanFactory 构造方法需要 Resource 对象
  2. XmlBeanDefinitionReader#loadBeanDefinitions 方法解析 xml Resource、获取和注册 BeanDefinition

代码入口:

public XmlBeanFactory(Resource resource, BeanFactory parentBeanFactory) throws BeansException {
	super(parentBeanFactory);
	this.reader.loadBeanDefinitions(resource);
}

 

ApplicationContext 是 BeanFactory 的超集。ApplicationContext 的启动主要是体现在 AbstractApplicationContext#refresh 方法上,进行了 IoC 配置元信息读取和解析、获取设置持有的 BeanFactory 对象、BeanFactoryPostProcessors 注册、注册各种 BeanPostProcessor 用于拦截和处理 Bean 的创建、Spring 事件发布、国际化等。

代码入口:

ConstXiong 备案号:苏ICP备16009629号-3