• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
如果青春不老,那么人生永光
renran的Blog
   首页          管理     

Spring BeanFactory管理Bean的生命周期

Spring BeanFactory管理Bean的生命周期

2014-06-14 12:00:08

 

 

  1.  Bean的建立:由BeanFactory读取Bean定义文件,并生成各个Bean实例
  2. 属性注入:执行相关的Bean属性依赖注入
  3. BeanNameAware的setBeanName():如果Bean类实现BeanNameAware接口,则执行setBeanName()方法。
  4. BeanFactoryAware的setBeanFactory():如果Bean类实现BeanFactoryAware接口,则执行setBeanFactory()方法
  5. BeanPostProcessors的processBeforeInitialization():如果任何的BeanPostProcessors实例与Bean实例关联,则执行BeanPostProcessors实例的processBeforeInitialization()方法
  6.  initializingBean的afterPropertiesSet():如果Bean类已实现了org.springframework.beans.factory.InitializingBean接口,则执行它的afterPropertiesSet()方法。
  7. Bean定义的init-method:可以在Bean定义文件中使用”init-method”属性设定方法名称,进入这个阶段,就会执行initBean()方法。
  8. BeanPostProcessors的processAfterInitialization():如果任何的BeanPostProcessors实例与Bean实例关联,则执行BeanPostProcessors实例的processAfterInitialization()方法
  9.  DisposableBean的destroy():在容器关闭时,如果Bean类有实现org.springframework.beans.factory.DisposabelBean接口,则执行它的destroy()方法
  10.  Bean定义文件中定义的destroy-method:可以在Bean定义文件中使用” destroy-method”属性设定方法名称,进入这个阶段,就会执行destroyBean()方法。

 

以上是BeanFactory管理Bean的方法。

如果采用ApplicationContext管理,则会稍有不同。使用ApplicationContext来生成和管理Bean实例的话,在执行BeanFactoryAware的SetBeanFactory()阶段之后,若Bean类上有实现ApplicationContextAware接口,则执行其setApplicationContext()方法,接着才继续进行BeanPostProcessors的processBeforeInitialization()及之后的流程。

 

posted @ 2014-06-14 11:56  renran0779  阅读(86)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3