SpingIOC bean定义的处理
2021-01-30 08:32:49 5 举报
SpingIOC bean定义的处理
作者其他创作
大纲/内容
!candidates.isEmpty()循环解析parser.parse(candidates)
处理@importResource
去容器中获取BeanDefinitionRegistryPostProcessor的bean的处理器名称(内置的和上面注册的)
这里面insD和person是@Component
processConfigurationClass方法
处理 @Bean methods 获取到我们配置类中所有标注了@Bean的方法
解析出来的配置类
从我们的配置类上解析处ComponentScans的对象集合属性
处理@Bean
满足添加 就加入到候选的配置类集合中configCandidates
此时@Component注解的已经在bean定义map里了
ImportBeanDefinitionRegistrar
processConfigurationClass
此时mainConfig就会通过判断
Set<ConfigurationClass> configClasses = new LinkedHashSet<>(parser.getConfigurationClasses());
处理@import注解
拿到import注解的类
TulingImportBeanDefinitionRegister
把@Bean的方法和@Import 注册到BeanDefinitionMap中
checkConfigurationClassCandidate
处理BeanFactoryPostProcessor
org.springframework.context.annotation.internalConfigurationAnnotationProcessor
invokeBeanFactoryPostProcessors
ImportSelector
至此我们走完了invokeBeanFactoryPostProcessors
创建我们通过@CompentScan导入进来的bean name 的生成器 创建我们通过@Import导入进来的bean的名称创建一个配置类解析器对象 ConfigurationClassParser
0 条评论
下一页