Spring中Bean的生命周期

     在Spring中,通过BeanFactory或者ApplicationContext获取实例化的bean,它默认是单例的(Singleton),Singleton默认值为true,如果想获取这个bean为多例的话,则将Singleton设置为false.

一、通过BeanFactory实例化的bean的生命周期
    1)bean实例化
    1.Bean的建立:
        容器找到这个bean并对其进行初始化。
    2.属性注入:
        使用依赖注入,容器根据bean的定义信息配置bean的属性。
    3.BeanNameAware的setBeanName():
        如果Bean有实现BeanNameAware接口,则工厂调用setBeanNameA()方法传递Bean的ID。
    4.BeanFactoryAware的setBeanFactory():
        如果Bean有实现BeanFactoryAware接口,工厂调用setBeanFactory()方法传递工厂本身。
    5.BeanPostProcessor的postProcessorBeforeInitialization():
        如果有BeanPostProcessor和Bean关联,则其postProcessorBeforeInitialization()将被调用。
    6.InitializingBean的afterPropertiesBean():
        如果bean类实现了InitializingBean的接口,则调用afterPropertiesBean()方法。
    7.Bean定义文件中定义init-method方法:
        如果配置文件中定义了bean的init-method,则调用那个initBean()方法。
    8.BeanPostProcessor的postProcessorAfterInitialization():
        如果有BeanPostProcessor和Bean关联,则其postProcessorAfterInitialization()将被调用。此时bean已经实例化完毕。

    2)bean销毁
    1.DisposiableBean的destroy()方法
        如果bean实现了DisposableBean的接口,则调用destroy()方法进行销毁。
    2.Bean的配置文件中定义了destroy-method:
        如果Bean的配置文件中定义了destroy-method,则执行指定的destroy()方法。


二、通过ApplicationContext实例化的bean的生命周期
    在创建bean的过程中稍有不同,在BeanFactoryAware的setBeanFactory()方法之后,调用setApplicationContext()方法,然后执行一下方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值