实例化Bean对象。
通过反射的方式进行对象的创建,此时的创建只是在堆空间中申请空间,属性都是默认值。
设置对象属性。
比如调用set方法。
检查Aware相关接口并设置相关依赖。
如果对象中需要引用容器内部的对象,那么需要调用aware接口的子类方法来进行统一的设置。
BeanPostProcessor的前置处理。
对生成的Bean对象进行前置的处理工作。
检查是否是InitializingBean的子类来决定是否调用afterPropertiesSet方法。
判断当前bean对象是否设置了InitializingBean接口,然后进行属性的设置等基本工作。
检查是否配置有自定义的init-method方法。
如果当前bean对象定义了初始化方法,那么在此处调用初始化方法。
BeanPostProcessor后置处理
对生成的bean对象进行后置的处理工作。AOP使用场景。
注册必要的Destruction相关回调接口。
为了方便对象的销毁,在此处调用注销的回调接口,方便对象进行销毁操作。
对象可以进行调用。context.getBean();
判断是否实现DisposableBean接口,当bean不再需要时,会经过清理阶段,会调用其实现destory()方法。
检查是否配置有自定义的destory方法。