Spring笔记(三)Spring容器管理下Bean的生命周期

[b]一、实例化[/b]
[b]二、装配(可选)[/b]
[b]三、回调(可选)[/b]
1、第一个回调接口BeanNameAware,如果一个Bean继承了该接口,Spring会将配置文件里的id通过setBeanName方法传递过来。
2、第二个回调接口BeanFactoryAware,如果一个Bean继承了该接口,Spring会将BeanFactory通过setBeanFactory方法传递过来。
[i] 使用例子:[/i]
Bean1为single,Bean2为prototype,Bean2为Bean1的属性出现,此时两次getBean获得Bean1后,再调用Bean1的getBean2方法返回的结果是是Bean2的同一个实例。
此时我们可以让Bean1实现回调接口BeanFactoryAware,实现setBeanFactory方法,将传入的BeanFactory保存为属性,即this.beanFactory = beanFactory。
然后在Bean1的getBean2方法里通过调用传递过来的BeanFactory的getBean方法获得Bean2,并将其返回,如此就实现了使两个Bean生命周期分离的问题了。
[b]四、初始化(可选)[/b]
1、BeanPostProcessors接口(重要),后处理Bean,用来扩展Bean的功能。在初始化之前加工一次,之后再加工一次。调用postProcessBeforeInitialization方法。
2、InitializingBean接口
3、调用Bean配置文件里的init-method指定的初始化方法(提倡)
4、BeanPostProcessors接口的postProcessAfterInitialization方法。
[b]五、就绪
六、销毁[/b]
1、DisposableBean接口,在容器关闭时,如果Bean类有实现DisposableBean接口,则执行他的destroy()方法。
2、调用Bean配置文件里的destroy-method指定的方法(提倡)
七、单例在容器启动时实例,原型在getBean调用时实例化。
[img]/upload/attachment/86415/9b6a107e-73df-33d0-a46e-4c8b81e1d215.jpg[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值