0、创建BeanFactory容器
1、加载xml、properties或yaml中定义bean的信息,封装其为beanDefinition对象
2、使用BeanFactoryPostProcessor在容器的创建过程中动态的修改bean信息。(BeanFactoryPostProcessor是用来增强BeanDefinition信息的),生成beanDefinition对象
3、(使用反射(能更灵活的获取类上的信息)方式去生成对象,包含如下步骤) 生成bean对象包含下面实例化初始化两部分:
4、实例化:在堆中开辟一块空间,对象的属性值都是默认值
5、初始化:给属性设置值
5.1 填充属性(populate)
5.2 设置Aware接口的属性 (Aware接口的作用:当Spring容器创建的bean对象在进行具体操作的时候,如果需要容器的其他对象,此时将对象实现Aware接口,来满足当前的需求)
5.3 BeanPostProcessor(它可以增强bean信息): 执行其中的XXXbeforeXXX()方法
5.4 执行初始化方法 init-method()
5.5 BeanPostProcessor(它可以增强bean信息): 执行其中的XXXafterXXX()方法
6、获得完整对象,使用contect.getBean()