转载请注明出处:https://blog.youkuaiyun.com/weixin_41459547/article/details/89052733
- 如果Bean实现了接口BeanNameAware的setBeanName方法,那么它就会调用这个方法
- 如果Bean实现了接口BeanFactoryAware的setBeanFactory方法,那么它就会调用这个方法
- 如果Bean实现了接口ApplicationContextAware的setApplicationContext方法,且Spring IoC容器也必须是一个ApplicationContext接口的实现类,那么才会调用这个方法
- 如果Bean实现了接口BeanPostProcessor的postProcessBeforeInitialization方法,那么它就会调用这个方法
- 如果Bean实现了接口BeanFactoryPostProcessor的afterPropertiesSet方法,那么它会调用这个方法
- 如果Bean自定义了初始化方法,它就会调用已定义的初始化方法
- 如果Bean实现了接口BeanPostProcessor的postProcessAfterInitialization方法,完成了这些调用,这个时候Bean就完成了初始化,那么Bean就存在Spring IoC的服务器中了,使用者就可以从中获取Bean的服务
当服务器正常关闭,或者遇到其他关闭Spring IoC容器的时间,它就会调用对应的方法完成Bean的销毁,其步骤如下:
- 如果Bean实现了接口DisposableBean的destroy方法,那么就会调用它
- 如果定义了自定义销毁方法,那么就会调用它