Java面试题
题目
请讲讲你对 spring 对象管理的生命周期的理解。
答案
- 根据配置文件或者注解来实例化 Bean。
- spring 使用依赖注入填充属性。
- 如果 bean 实现了 BeanNameAware 接口,则实现 setBeanName() 方法。
- 如果 bean 实现了 BeanFactoryAware 接口,实现 setBeanFactory() 方法。
- 如果实现了 BeanPostProcessor 接口,则实现 postProcessBeforeInitialization() 方法。
- 如果实现了 InitializingBean 接口,就需要实现 afterPropertiesSet() 方法。
- 如果为 bean 指定了 init 方法,就执行 init-method 方法。
- 如果实现了 BeanPostProcessor 接口,则实现 postProcessAfterInitialization() 方法。
- 如果 bean 实现了 DisposableBean 接口,那么 spring 容器关闭的时候,会调用 destroy() 方法。