Java面试题

题目

请讲讲你对 spring 对象管理的生命周期的理解。

答案

  1. 根据配置文件或者注解来实例化 Bean。
  2. spring 使用依赖注入填充属性。
  3. 如果 bean 实现了 BeanNameAware 接口,则实现 setBeanName() 方法。
  4. 如果 bean 实现了 BeanFactoryAware 接口,实现 setBeanFactory() 方法。
  5. 如果实现了 BeanPostProcessor 接口,则实现 postProcessBeforeInitialization() 方法。
  6. 如果实现了 InitializingBean 接口,就需要实现 afterPropertiesSet() 方法。
  7. 如果为 bean 指定了 init 方法,就执行 init-method 方法。
  8. 如果实现了 BeanPostProcessor 接口,则实现 postProcessAfterInitialization() 方法。
  9. 如果 bean 实现了 DisposableBean 接口,那么 spring 容器关闭的时候,会调用 destroy() 方法。