- Spring 容器根据实例化策略对 Bean 进行实例化。
- 实例化完成后,如果该 bean 设置了一些属性的话,则利用 set 方法设置一些属性。
- 如果该 Bean 实现了 BeanNameAware 接口,则调用 setBeanName() 方法。
- 如果该 bean 实现了 BeanClassLoaderAware 接口,则调用 setBeanClassLoader() 方法。
- 如果该 bean 实现了 BeanFactoryAware接口,则调用 setBeanFactory() 方法。
- 如果该容器注册了 BeanPostProcessor,则会调用postProcessBeforeInitialization() 方法完成 bean 前置处理
- 如果该 bean 实现了 InitializingBean 接口,则调用 。afterPropertiesSet() 方法。
- 如果该 bean 配置了 init-method 方法,则调用 init-method 指定的方法。
- 初始化完成后,如果该容器注册了 BeanPostProcessor 则会调用 postProcessAfterInitialization() 方法完成 bean 的后置处理。
- 对象完成初始化,开始方法调用。
- 在容器进行关闭之前,如果该 bean 实现了 DisposableBean 接口,则调用 destroy() 方法。
- 在容器进行关闭之前,如果该 bean 配置了 destroy-mehod,则调用其指定的方法。
- 到这里一个 bean 也就完成了它的一生。
网友评论