1、容器启动阶段
- Spring就需要知道创建一个对象所需要的一些必要的信息。这些创建对象所需要的必要信息称为配置元信息。
- 配置元信息被加载到内存之后是以BeanDefination的形式存在。
BeanDefinationReader的作用就是加载配置元信息,并将其转化为内存形式的BeanDefination。 - 生成相应的BeanDefination之后,就将其注册到BeanDefinationRegistry中,BeanDefinationRegistry就是一个存放BeanDefination的大篮子,它也是一种键值对的形式,通过特定的Bean定义的id,映射到相应的BeanDefination。
- BeanFactoryPostProcessor就会对注册到BeanDefinationRegistry中的BeanDefination做最后的修改,$占位符替换为配置文件中的真实的数据。