简单不先于复杂
而是在复杂之后

Spring Bean 生命周期

  1. 实例化Bean
  2. 设置Bean属性值
  3. 判断是否实现BeanNameAware,如果实现调用其setBeanName方法
  4. 判断是否实现BeanFactoryAware,如果实现调用其setBeanFactory方法
  5. 判断是否实现ApplicationContextAware,如果实现调用其setApplicationContext方法
  6. 调用BeanPostProcessor的预初始化方法
  7. 判断是否标注@PostConstruct注解,如果有则执行
  8. 判断是否实现InitializingBean,如果实现调用其afterPropertiesSet方法
  9. 判断是否配置初始化方法(init-method
  10. 调用BeanPostProcessor的后初始化方法
  11. 是否为singleton
    1. singleton: 将Bean放入SpringIOC的缓存池中
    2. prototype: 将Bean交给调用者,后续不进行管理(不参与后续步骤)
  12. 执行@PreDestory标注的方法
  13. 调⽤DisposableBean的destory⽅法
  14. 调⽤属性配置的销毁⽅法(destory-method

posted @ 2020-11-28 17:05  Jacian  阅读(18)  评论(0编辑  收藏