本文主要是介绍28.BeanDefinition的加载过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
BeanDefinition的加载过程
BeanDefinition的加载过程就是将 概念态的Bean注册为定义态的Bean
不同的Spring上下文会有不同的注册过程,但是会用共同的api步骤:
- 通过BeanDefinitionReader 将配置类(AnnotatedBeanDefinitionReader)(xml文件:XmlBeanDefinitionReader) 注
册为BeanDefinition - 解析配置类ConfigurationClassParser(xml文件:BeanDefinitionDocumentReader)
- 不同的注解(xml节点)有不同的解析器。 比如ComponentScan 需要通过ClassPathBeanDefinitionScanner扫描所有类找到类上面有@Import的类
- 将读取到的Bean定义信息通过BeanDefinitionRegistry注册为一个BeanDefinition
额外扩展(可跳过)
Spring容器的启动过程大致可以分为两步:
- BeanDefinition 的加载。
- 容器的初始化。
使用Spring之前我们需要先定义Bean, 一般有两种方式定义,分别是xml和注解,两种方式的大同小异,都需要先将Bean的定义转化为BeanDefinition, BeanDefinition 包含了初始化该Bean所需要的信息,可以认为BeanDefinition 是Bean的一种描述,一种定义。 BeanDefinition 是Spring中重要的一个结构,后续的容器中实例的初始化依赖于BeanDefinition。
这篇关于28.BeanDefinition的加载过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!