从注解到BeanDefinition
该过程中涉及组件
@Component注解转化为BeanDefinition的过程
Springboo 场景剖析一: 与启动类在同一路径下@Component注解是何时被解析的
我们拿最常见的和启动类在同一路径下的@Component注解的类来分析是如何转化为BeanDefinition的
关键一步,通过resource得到MetadataReader,然后通过metadataReader来创建ScannedGenericBeanDefinition,@Component注解以及派生注解都是创建为ScannedGenericBeanDefinition类型的BeanDefinition。
这里的Resource一个是启动类一个是Config类
将BeanDefinition注册到容器中
BeanDefinitionReaderUtils将BeanDefinition注册到容器中
@Bean转化为BeanDefinition
将BeanDefinition注册到容器中
将@Import注解中的类信息转化为BeanDefinition
Springboot 知识点(三)自动配置及starter原理
将BeanDefinition注册到容器中 (@Import(Registry的实现类))
常规BeanDefinition转化
哪些组件可以注册BeanDefinition到BeanFactory中
DefaultListableBeanFactory
不论你是通过context#registryBeanDefinition还是Context的reader最后都是通过DefaultListableBeanFactory
DefaultListableBeanFactory#registerBeanDefinition
DefaultListableBeanFactory可以这样做是因为实现了BeanDefinitionRegistry
BeanFactory系列