一、概述
BeanDefinition是用来描述bean的生产信息,决定bean如何生产,是一个定义态的bean。
二、流程
2.1、第一步:启动IOC容器
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MySpringConfig.class);
2.2、第二步:解析配置类
# 1、读取配置
BeanDefinitionReader # getRegistry()
# 2、扫描包
AnnotationConfigApplicationContext # scan
# 3、注册BeanDefinition
2.3、第三步:注册为BeanDefinitionMap
2.4、第四步:工厂生产bean
三、总结
BeanDefinition用来描述bean的生产信息,决定bean如何生产,是一个定义态的bean。我们在创建Spring容器的时候,首先会去读取配置,然后解析配置,将符合条件的bean注册成BeanDefinitionMap,然后工厂根据这些描述信息去生产bean。