Spring Bean的创建过程概述

本篇仅简单介绍流程,具体的创建过程,由后续的源码解析部分进行详述。

总体流程图

简易版Spring Bean的创建过程如下图:
在这里插入图片描述
简单来讲,Bean的创建有下面几个过程:

  1. 解析Bean的定义构建BeanDefinition
  2. 对BeanDefinition进行增强
  3. 根据BeanDefinition创建Bean对象,其中包括对象的实例化和初始化两个阶段

Bean解析

我们可以使用XML,propertites,yam文件形式定义Bean,也可以在我们代码中以注解等方式定义Bean。那Spring的IOC容器是如何将这些Bean的定义转化为一个个Bean对象的呢?

Spring中基于BeanDefinitionReader接口提供多种解析器:
在这里插入图片描述
最终可以将Bean的不同定义,封装成一个统一的BeanDefinition对象,完成Bean定义的解析。

BeanDefinition

在构建出对Bean进行解释的BeanDefinition对象之后,BeanFactoryPostProcessor接口负责对Definition对象进行增强

对象创建

根据BeanDefinition,使用Java反射既可以构建出Bean,包括对象的实例化和属性的初始化两个阶段。

名词释义

在上面的流程图中,有两个比较接近的接口:

BeanFactoryPostProcessor:这个是对BeanDefinition对象进行增强
BeanPostProcesser:这个是对Bean本身进行增强
这两者的作用对象是不一样的。

另外在Spring中还有两个容易混淆的概念:
BeanFactory:这个是Spring的跟接口,是入口方法,也是Spring IOC容器的根接口。在使用Beanfactory创建对象时,必须遵循Bean完整的创建过程,这个过程是由Spring进行管控
FactoryBean: 不需要遵循Bean的完整创建过程,调用getObject就可以返回具体Bean,对象的创建过程是用户自己定义的,有更大的灵活性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值