【spring 註解】第5篇:Bean的生命週期管理

Bean的生命週期

正確理解spring容器中bean的生命週期很重要,有利於對bean的裝配過程當中進行一些自定義內容。以下圖所示的生命週期:
圖片描述spring

如上圖所見,在bean準備就緒以前,bean工廠執行了若干啓動步驟,詳細描述以下:post

  • spring對bean實例化;
  • spring將值和bean的引用注入到bean對應的屬性中;
  • 若是bean實現了BeanNameAware接口,spring將bean的id傳遞給setBeanName()方法,該方法的做用就是設置bean的id到BeanFactory中方便建立該bean,同時讓bean知道本身在BeanFactory配置中的名字
  • 若是bean實現了BeanFactoryAware接口,spring將調用setBeanFactroy()方法,將BeanFactory容器實例傳入,便於bean夠獲取配置他們的BeanFactory的引用
  • 若是bean實現了ApplicationContextAware接口,spring將調用setApplicationContext()方法,將bean所在應用上下文的引用傳進來,便於bean獲取它所在的Spring容器
  • 若是bean實現了BeanPostProcessor接口,spring將調用它的postProcessBeforeInitialization()方法,該方法在bean初始化以前調用;
  • 若是bean實現了InitializingBean接口,spring將調用它的afterPropertiesSet()方法,當bean的所用屬性被設置完成以後調用該方法;
  • 若是bean實現了BeanPostProcessor接口,spring將調用它的postProcessAfterInitialization()方法,在bean初始化完成以後調用;
  • 若是bean實現了DisposableBean接口,spring將調用它的destory()方法;
相關文章
相關標籤/搜索