Bean的生命周期详解

一.实例化:
(1)Class对象
(2)通过clazz.getDclareConstructor方法获取无参构造器
(3)通过无参构造器的getnewInstance方法获取该类对象
二.初始化自定义值*(因为在堆中创建了一个内存空间,所以需要注入值)
(1)向所依赖的对象的成员变量进行值的注入!
(2)自定义的bean的名称进行注入,实现BeanNameAware接口,使用setBeanName方法
三.spring容器的对象注入
(1)实现BeanFactoryAware接口,调用BeanFactory()方法;
(2)实现ApplicationContextAware接口,调用ApplicationContext方法,
*****注意此时的bean对象已经成功出来了,但是需要扩展所以实现了BeanPostProcessor的PostProcessorBeforInitialization方法如下四部分
四.开始对bean进行扩展
(1)第一步:实现bean的后置处理的前置方法:
实现Beanpostprocessor接口的PostProcessorBeforInitialization方法
(2)第二步:初始化方法
应该要调用init-method方法,但是要先判断是否实现了Initialization接口,如果实现了就调用AfterPropertiesSet()方法然后再调用init-method方法
(3)第三步:后置处理方法
实现BeanPostProcessor接口,可以在这里作为Aop的入口,调用PostProcessorAfterInitialization方法;后置-----》在下一行
后置处理器的工作完成!bean对象已经可以被调用了!
五.判断作用域范围:
(1)*如果是singleton作用域则是spring Ioc缓存池中并且触发sping对bean的生命周期管理
         *如果是prototype作用域则是给调用则使用!
(2)*如果实现DisposableBean接口则调用distory方法进行销毁,如果在配置文件中写了destory-method指定了销毁方法那么就调用指定的销毁方法进行销毁!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值