在创建spring容器,也就是启动spring容器时
- 首先扫描所有要加载的bean,得到一个BeanDefinition对象,并存在一个Map中。
- 然后筛选出非懒加载的BeanDefinition进行bean的创建。对于多例bean不需要在启动过程中创建,多例bean在使用时利用BeanDefinition去创建
- 利用BeanDefinition去创建bean就是bean的创建声明周期,期间包含了合并BeanDefinition、推断构造方法、实例化、属性填充、初始化前、初始化、初始化后等步骤,aop就是发生在初始化后这一步骤中
- 单例bean创建完后,spring就会发布一个容器启动事件
- spring启动结束