- 首先容器启动后,对bean进行初始化。
- 按照bean定义注入属性。
- 检测是否实现了XXAware接口,如BeanNameAware等,将相关信息注入到bean实例。
- 经过以上步骤,bean实例已正确构造,通过实现BeanPostProcessor#postProcessBeforeInitialzation进行前置处理。
- BeanPostProcessor前置处理完成后,可以通过实现InitializingBean#afterPropertiesSet、@PostConstruct、init-method方法,增强自定义逻辑。
- 通过实现BeanPostProcessor#postProcessAfterInitialzation进行后置处理。
- 此时bean准备已完成,可以使用。
- 容器关闭后,如果bean实现了DisposableBean接口,会执行destory方法。
- 最后执行自定义的销毁前destory-method指定方法。
- bean销毁完成。