基于Java-based的Spring源码解读(五)
接着上一篇Spring源码解读(三)
前两天实在读晕了,借鉴了郝佳的《Spring源码深度解读》的思路,配合UML类图、时序图等手段,帮助我们理解。容器时序图如下:
时序图从AppConfigTest测试类开始,从时序图我们可以一目了然的看出ApplicationContext容器执行的处理逻辑。首先在测试类创建AnnotationConfigApplicationContext实例,并调用自身的构造函数,在该构造函数内分别实例化AnnotatedBeanDefinitionReader、ClassPathBeanDefinitionScanner,然后调用自身的register方法,并通过自身的reader属性调用AnnotatedBeanDefinitionReader.register方法,将配置类AppConfig注册到bean定义读取器,最后调用refresh方法,刷新应用上下文