Spring面试题--Spring的bean的生命周期

这个问题比较困难,设计到了spring的底层,但是通过这个的学习,可以帮助我们了解Spring容器是如何管理和创建bean实例,以及方便调试和解决问题。

BeanDefinition

bean的定义信息Spring容器在进行实例化时,会将xml配置的<bean>的信息封装成一个BeanDefinition对象,Spring根据BeanDefinition来创建Bean对象,里面有很多的属性用来描述Bean

 

bean的生命周期

构造函数:通过实例化bean来构建函数

依赖注入:包括@authwire和@value标明的属性都是在这里注入的

BeanPostProcessor#before:bean的后置处理器,用来增强bean的功能,在初始化方法对应之前进行回调

BeanPostProcessor#after:bean的后置处理器,spring中一般对类进行增强,都是会用到下面的后置处理器

代码执行

 

 

 

 

 通过 后置处理器进行增强

面试回答

面试官:Spring的bean的生命周期

候选人: 嗯!,这个步骤还是挺多的,我之前看过一些源码,它大概流程是这样的 首先会通过一个非常重要的类,叫做BeanDefinition获取bean的定义信息, 这里面就封装了bean的所有信息,比如,类的全路径,是否是延迟加载,是 否是单例等等这些信息

在创建bean的时候,

第一步是调用构造函数实例化bean,

第二步是bean的依赖注入,比如一些set方法注入,像平时开发用的 @Autowire都是这一步完成

第三步是处理Aware接口,如果某一个bean实现了Aware接口就会重写方法 执行

第四步是bean的后置处理器BeanPostProcessor,这个是前置处理器

第五步是初始化方法,比如实现了接口InitializingBean或者自定义了方法 init-method标签或@PostContruct

第六步是执行了bean的后置处理器BeanPostProcessor,主要是对bean进行 增强,有可能在这里产生代理对象

最后一步是销毁bean

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值