spring bean创建过程三

本文详细介绍了Spring中Bean的创建过程,包括提前创建、使用InstantiationAwareBeanPostProcessor接口进行定制化操作,以及通过Supplier和静态工厂方法创建对象的步骤。通过对源码的断点跟踪,展示了每个阶段的关键方法调用,揭示了Spring管理Bean生命周期的内部机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接下来讲解在创建bean过程,可能会提前创建,下面开始一个案例

定义一个类:BeforeInstantiation

定义一个拦截器

定义一个类,实现InstantiationAwareBeanPostProcessor接口

再来看下BeanPostProcessor接口,可以看到InstantiationAwareBeanPostProcessor接口是BeanPostProcessor的子接口,所以我们定义的类实现了5个方法

 

开始断点看源码:

我们知道BeanPostProcessor接口是在:下面图片所示:registerBeanPostProcessors()这里注册的

再继续执行:

从getBean->doGetBean

再到createBean方法

进入到关键方法了

进入实例化之前的方法

 

进入到自定义类的方法了

通过动态代码,创建了类的实例

继续执行实例化之后的方法

 

 

返回对象:

 

直接返回创建的对象,后面的doCreateBean就不会执行了

 

下面来讲下spring创建对象的方式

下面讲解通过supplier接口创建对象

先来看下接口,函数式编程接口,我们可以用Supplier来表示如何获取一个结果,在需要这个结果时调用get()函数,即可拿到这个结果

下面看一个案例

 

 

 

配置

下面断点看源码,创建实例

获取supplier接口

获取到接口

执行处理

进入到获取实例方法

 

 

产生了对象实例

 

最后我们来看:通过factoryMethod创建对象

准备一个案例:

 

 

 

测试类:

 

配置:

下面断点进入:

 

 

 

进入到静态工厂方法,创建person1对象

 

 

 

执行创建方法

 

直接返回对象

 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值