简述:
我们在 Spring 中通常以这两种方式定义一个 Bean:面向资源(XML、Properties)、面向注解。如今 Spring Boot 被广泛应用,通过注解定义一个 Bean 的方式变得更为普遍,因为在实际的开发过程中注解的方式相比于 XML 文件更加轻便,可以有效地提高工作效率。你是否这了解这两种方式在 Spring 内是如何进行处理的,将我们的配置信息转换成 Spring Bean,并管理着这些它们的生命周期
在 Spring Bean 的生命周期 可以看到,BeanDefinition 可以说是 Bean 的“前身”,首先进入 Bean 的元信息的配置、解析和注册阶段,然后才开始 Bean 的实例化和初始化等工作。接下来,我们就一起来看看 Bean 的“前身”是什么
BeanDefinition 是 Spring Framework 中定义 Bean 的配置元信息接口,主要包含一下信息:
Bean 的类名
Bean 行为配置类,如作用域、自动绑定模式、生命周期回调等
其他 Bean 引用,又可称作合作者或者依赖
配置设置,比如 Bean 属性
总结:
Bean 是根据 BeanDefinition 配置元信息对象生成的。我们在 Spring 中通常以这两种方式定义一个 Bean:面向资源(XML、Properties)、面向注解, 这些配置或者注解在整个Bean生命周期的作用和触发时机是什么呢。
总结如下图所示
![](https://i-blog.csdnimg.cn/blog_migrate/751e333054f3916d12452b9092b618c8.png)