【源码分析】@Configuration源码分析1

本次学习分为两个,一个是流程大概的梳理,一个是源码的分析,可以对照者流程图看源码分析。

@Configuration源码分析1

@Configuration源码分析2

按照注册流程和实例化流程来深入分析@Configuration注解在Spring源码层面的执行流程。

注意:Spring IOC容器在启动时,会向IOC容器中注册ConfigurationClassPostProcessor类的bean定义信息和使用@Configuration注解标注的ConfigurationAnnotationConfig配置类的Bean定义信息。
当Spring IOC容器在刷新时,会递归处理所有使用@Configuration注解标注的类,解析@Bean等注解标注的方法,解析成一个个ConfigurationClassBeanDefinition类型的BeanDefinition对象,注册到IOC容器中。

注册ConfigurationClassPostProcessor流程源码解析

先看调用流程图:
从下图可以看出来 Spring IOC容器启动时,向IOC容器中注册ConfigurationClassPostProcessor类的Bean定义信息时,会涉及到AnnotationConfigApplicationContext类、AnnotatedBeanDefinitionReader类和AnnotationConfigUtils类中方法的调用。

在这里插入图片描述

注册ConfigurationAnnotationConfig流程源码解析

看下图:
可以看出Spring IOC容器启动时,向IOC容器中注册ConfigurationAnnotationConfig类的Bean定义信息时,会涉及到AnnotationConfigApplicationContext类、AnnotatedBeanDefinitionReader类、BeanDefinitionReaderUtils类和DefaultListableBeanFactory类的方法调用。
在这里插入图片描述

实例化流程-流程图

Spring IOC容器在启动过程中,最终会调用AnnotationConfigApplicationContext类的refresh()方法刷新IOC容器,刷新IOC容器的过程中就会对标注了@Configuration注解的配置类进行实例化。
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,84人围观)

还没有评论,来说两句吧...

相关阅读